#include #include #include #include using namespace std; const int maxn = 5000007; int n, a[maxn]; int o, x; struct BIT { int t[maxn << 2]; int lowbit(int x) { return x & (-x); } int get_sum(int x) { int res = 0; while (x) { res += t[x]; x -= lowbit(x); } return res; } void add(int x, int v) { while (x < maxn) { t[x] += v; x += lowbit(x); } } } bit; int query() { int l = 1, r = n, ans = 0; while (l <= r) { int mid = (l + r); mid >>= 1; if (bit.get_sum(mid) >= mid) { ans = mid; l = mid + 1; } else { r = mid - 1; } } return ans + 1; } int main() { scanf("%d", &n); for (int i = 0; i < n; ++i) { scanf("%d %d", &o, &x); if (o == 1) { if (a[x] == 0) { bit.add(x, 1); a[x] = 1; } } else { if (a[x] == 0) { bit.add(x, 1); a[x] = 1; printf("%d\n", query()); bit.add(x, -1); a[x] = 0; } else { printf("%d\n", query()); } } } return 0; }