#include #define ll long long #define uint unsigned int #define ull unsigned long long #define inf 1010000000 #define infll 1010000000000000000ll #define vi vector #define vll vector #define pb push_back #define pii pair #define pll pair #define pdd pair #define mpr make_pair #define fi first #define se second #define pq priority_queue #define pqll priority_queue #define up(x,y) (x<(y)?x=(y):0) #define dn(x,y) (x>(y)?x=(y):0) #define ad(x,y) (x=(x+(y))%mod) #define cbn(x,y) ((ll)fac[x]*inv[y]%mod*inv[(x)-(y)]%mod) using namespace std; int read(); ll readll(); int n, a[5000009]; int main(){ scanf("%d", &n); int p1 = 1, p2 = 2; for (int ri = 1; ri <= n; ri++){ int op = read(), x = read(); if (op == 1){ a[x] = 1; if (x == p1) for (; p1 <= n && a[p1]; p1++); if (p1 >= p2) p2 = p1 + 1; for (; p2 <= n && a[p2]; p2++); } else printf("%d\n", x == p1 ? p2 : p1); } return 0; } int read(){ int x=0; char ch=getchar(); bool flag=0; while (ch<'0' || ch>'9'){ if (ch=='-') flag=1; ch=getchar(); } while (ch>='0' && ch<='9'){ x=x*10+ch-'0'; ch=getchar(); } return flag?-x:x; } ll readll(){ ll x=0; char ch=getchar(); bool flag=0; while (ch<'0' || ch>'9'){ if (ch=='-') flag=1; ch=getchar(); } while (ch>='0' && ch<='9'){ x=x*10+ch-'0'; ch=getchar(); } return flag?-x:x; }