#include #include #include void Read(int &x){ char c; while(!isdigit(c=getchar())); x=(c&15); while(isdigit(c=getchar())) x=x*10+(c&15); } void Print(int x){ int i; for(i=1;i*10LL<=x;i*=10); for(;i;i/=10) putchar(x/i%10|48); putchar(10); } const int N=5000005; int n,fu[N]; bool b[N]; int Find(int x){return fu[x]>=0?fu[x]=Find(fu[x]):x;} int main(){ b[0]=true; int op,x; Read(n); memset(fu,0xff,(n+1)<<2); while(n--){ Read(op),Read(x); switch(op){ case 1: if(!b[x]){ b[x]=true; if(b[x+1]) fu[x]=Find(x+1); if(b[x-1]) fu[x-1]=Find(x); } break; case 2: int t=Find(0); if(t==x-1) t=(b[x+1]?Find(x+1):x); Print(t+1); break; } } return 0; }