#include <bits/stdc++.h>
using namespace std;
using ll = long long;
static uint64_t x = 1234;
static uint64_t gen() {
uint64_t z = (x += 0x9e3779b97f4a7c15);
z = (z ^ (z >> 30)) * 0xbf58476d1ce4e5b9;
z = (z ^ (z >> 27)) * 0x94d049bb133111eb;
return z ^ (z >> 31);
}
struct Segtree {
int n;
vector<int> seg;
Segtree(int _n) {
for (n = 1; n < _n; n *= 2);
seg.resize(2 * n);
}
void upd(int i, int x) {
seg[i += n] = x;
while (i /= 2) seg[i] = min(seg[2 * i], seg[2 * i + 1]);
}
int query(int l, int r) {
int res = INT_MAX;
for (l += n, r += n; l < r; l /= 2, r /= 2) {
if (l & 1) res = min(res, seg[l++]);
if (r & 1) res = min(seg[--r], res);
}
return res;
}
};
int main() {
cin.tie(0)->sync_with_stdio(0);
const int n = 1 << 20, q = 1 << 20;
Segtree seg(n);
ll res = 0;
for (int _ = q; _--;) {
int i = gen() % n, x = gen() % ((int) 1e9);
seg.upd(i, x);
int l = gen() % (n + 1), r = gen() % (n + 1);
if (l > r) swap(l, r);
res += seg.query(l, r);
}
cout << res << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp1c2luZyBsbCA9IGxvbmcgbG9uZzsKCnN0YXRpYyB1aW50NjRfdCB4ID0gMTIzNDsgCnN0YXRpYyB1aW50NjRfdCBnZW4oKSB7CiAgICB1aW50NjRfdCB6ID0gKHggKz0gMHg5ZTM3NzliOTdmNGE3YzE1KTsKICAgIHogPSAoeiBeICh6ID4+IDMwKSkgKiAweGJmNTg0NzZkMWNlNGU1Yjk7CiAgICB6ID0gKHogXiAoeiA+PiAyNykpICogMHg5NGQwNDliYjEzMzExMWViOwogICAgcmV0dXJuIHogXiAoeiA+PiAzMSk7Cn0KCnN0cnVjdCBTZWd0cmVlIHsKICAgIGludCBuOwogICAgdmVjdG9yPGludD4gc2VnOwogICAgU2VndHJlZShpbnQgX24pIHsKICAgICAgICBmb3IgKG4gPSAxOyBuIDwgX247IG4gKj0gMik7CiAgICAgICAgc2VnLnJlc2l6ZSgyICogbik7CiAgICB9CiAgICB2b2lkIHVwZChpbnQgaSwgaW50IHgpIHsKICAgICAgICBzZWdbaSArPSBuXSA9IHg7CiAgICAgICAgd2hpbGUgKGkgLz0gMikgc2VnW2ldID0gbWluKHNlZ1syICogaV0sIHNlZ1syICogaSArIDFdKTsKICAgIH0KICAgIGludCBxdWVyeShpbnQgbCwgaW50IHIpIHsKICAgICAgICBpbnQgcmVzID0gSU5UX01BWDsKICAgICAgICBmb3IgKGwgKz0gbiwgciArPSBuOyBsIDwgcjsgbCAvPSAyLCByIC89IDIpIHsKICAgICAgICAgICAgaWYgKGwgJiAxKSByZXMgPSBtaW4ocmVzLCBzZWdbbCsrXSk7CiAgICAgICAgICAgIGlmIChyICYgMSkgcmVzID0gbWluKHNlZ1stLXJdLCByZXMpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzOwogICAgfQp9OwoKaW50IG1haW4oKSB7CiAgICBjaW4udGllKDApLT5zeW5jX3dpdGhfc3RkaW8oMCk7CiAgICAKICAgIGNvbnN0IGludCBuID0gMSA8PCAyMCwgcSA9IDEgPDwgMjA7CiAgICBTZWd0cmVlIHNlZyhuKTsKICAgIGxsIHJlcyA9IDA7CiAgICBmb3IgKGludCBfID0gcTsgXy0tOykgewogICAgICAgIGludCBpID0gZ2VuKCkgJSBuLCB4ID0gZ2VuKCkgJSAoKGludCkgMWU5KTsKICAgICAgICBzZWcudXBkKGksIHgpOwogICAgICAgIGludCBsID0gZ2VuKCkgJSAobiArIDEpLCByID0gZ2VuKCkgJSAobiArIDEpOwogICAgICAgIGlmIChsID4gcikgc3dhcChsLCByKTsKICAgICAgICByZXMgKz0gc2VnLnF1ZXJ5KGwsIHIpOwogICAgfQogICAgY291dCA8PCByZXMgPDwgJ1xuJzsKfQ==