#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll mod = 1000000;
const int N = 200005;
const int INF = 0x3f3f3f3f;
mt19937 sj(114514);
struct FHQ {
int ls, rs, key, sz, val;
} fhq[N];
int root, T1, T2, T3, ck;
int xj(int v) {
fhq[++ck] = {0, 0, (int)sj(), 1, v};
return ck;
}
void push_up(int u) {
fhq[u].sz = fhq[fhq[u].ls].sz + fhq[fhq[u].rs].sz + 1;
}
void split(int u, int v, int& x, int& y) {
if (!u) {
x = y = 0;
return;
}
if (fhq[u].val > v) {
y = u;
split(fhq[u].ls, v, x, fhq[u].ls);
} else {
x = u;
split(fhq[u].rs, v, fhq[u].rs, y);
}
push_up(u);
}
int merge(int x, int y) {
if (!x || !y) {
return x + y;
}
if (fhq[x].key > fhq[y].key) {
fhq[x].rs = merge(fhq[x].rs, y);
push_up(x);
return x;
} else {
fhq[y].ls = merge(x, fhq[y].ls);
push_up(y);
return y;
}
}
void insert(int v) {
split(root, v, T1, T2);
root = merge(merge(T1, xj(v)), T2);
}
void erase(int x) {
split(root, x, T1, T2);
split(T1, x - 1, T1, T3);
T3 = merge(fhq[T3].ls, fhq[T3].rs);
root = merge(merge(T1, T3), T2);
}
int find_rank(int x) {
split(root, x - 1, T1, T2);
int res = fhq[T1].sz + 1;
root = merge(T1, T2);
return res;
}
int kth(int k) {
int u = root;
while (u) {
int tmp = fhq[fhq[u].ls].sz + 1;
if (tmp == k) {
break;
} else if (k < tmp) {
u = fhq[u].ls;
} else {
k -= tmp;
u = fhq[u].rs;
}
}
return fhq[u].val;
}
int find_pre(int u, int v) {
if (u == 0)
return -INF;
if (fhq[u].val < v) {
int res = find_pre(fhq[u].rs, v);
return res == -INF ? fhq[u].val : res;
} else {
return find_pre(fhq[u].ls, v);
}
}
int find_next(int u, int v) {
if (u == 0)
return INF;
if (fhq[u].val > v) {
int res = find_next(fhq[u].ls, v);
return res == INF ? fhq[u].val : res;
} else {
return find_next(fhq[u].rs, v);
}
}
int main() {
int _;
scanf("%d", &_);
int ans = 0;
while (_--) {
int o, x;
scanf("%d%d", &o, &x);
if (o == 0) {
insert(x);
} else {
int pre = find_pre(root, x + 1), next = find_next(root, x - 1);
if (pre == -INF && next == INF) {
continue;
}
if (pre == -INF) {
ans += next - x;
erase(next);
} else if (next == INF) {
ans += x - pre;
erase(pre);
} else {
if (x - pre <= next - x) {
ans += x - pre;
erase(pre);
} else {
ans += next - x;
erase(next);
}
}
ans %= mod;
}
}
printf("%d\n", ans);
return 0;
}