#include #define maxn 5000500 using namespace std; int a[maxn],fa[maxn]; int find(int x){ if(fa[x]==x) return x; else return fa[x] = find(fa[x]); } int main () { int n; cin>>n; for(int i = 1;i<=n;i++) fa[i] = i; for(int i = 1;i<=n;i++){ int f,x; scanf("%d%d",&f,&x); if(f==1){ a[x] = 1; int p1 = find(x); int p0 = find(x-1); int p2 = find(x+1); if(a[x-1]==1&&p0!=p1)fa[p1] = p0; if(a[x+1]==1&&p1!=p2) fa[p2] = p1; } else{ if(a[x]==1){ if(a[1]==0){ printf("1\n"); continue; } int x0 = find(1); int l = 1,r = n,mid; while(l<=r){ mid = (l+r)/2; int u = find(mid); if(u!=x0) r = mid-1; else l = mid+1; } printf("%d\n",l); } else { if(a[1]==0&&x!=1){ printf("1\n"); continue; } int x0 = find(1); int l = 1,r = n,mid; if((find(x-1)!=x0&&x!=1))r = x-1; else { x0 = find(x+1); l = x+1; } if(a[l]==0){ printf("%d\n",l); continue; } while(l<=r){ mid = (l+r)/2; int u = find(mid); if(u!=x0) r = mid-1; else l = mid+1; } printf("%d\n",l); } } } return 0; }