#include #define cs(n) scanf("%d", &n) #define F(i, j, k) for(int i = j; i <= k; ++i) #define R(i, j, k) for(int i = j; i >= k; --i) using namespace std; using ll = long long; const int MAXN = 5000004; const int INF = 0x3f3f3f3f; int n; int a[MAXN]; int sum[MAXN]; inline int lowbit(int x) { return x & (-x); } int add(int i, int x) { while(i <= n) { sum[i] += x; i += lowbit(i); } } int qry(int i) { int ans = 0; while(i) { ans += sum[i]; i -= lowbit(i); } return ans; } int main() { cs(n); F(i, 1, n) { int x; cs(x); int y; cs(y); if(x == 1) { if(a[y] != 1) add(y, 1), a[y] = 1; } else { if(a[y] != 1) { add(y, 1); int l = 1, r = n, mid; while(l <= r) { mid = l + r >> 1; if(qry(mid) < mid) r = mid - 1; else l = mid + 1; } if(a[y] != 1 && l == y) ++l; printf("%d\n", l); add(y, -1); } else { int l = 1, r = n, mid; while(l <= r) { mid = l + r >> 1; if(qry(mid) < mid) r = mid - 1; else l = mid + 1; } if(a[y] != 1 && l == y) ++l; printf("%d\n", l); } } } return 0; }