#include #define For(i,x,y) for (register int i=(x);i<=(y);i++) #define FOR(i,x,y) for (register int i=(x);i<(y);i++) #define Dow(i,x,y) for (register int i=(x);i>=(y);i--) #define Debug(v) for (auto i:v) cout< pa; typedef pair PA; typedef vector poly; inline ll read(){ ll x=0,f=1;char c=getchar(); while ((c<'0'||c>'9')&&(c!='-')) c=getchar(); if (c=='-') f=-1,c=getchar(); while (c>='0'&&c<='9') x=x*10+c-'0',c=getchar(); return x*f; } const int N = 1e7+10; int n; int fa[N]; inline int Find(int x){ return fa[x]==x?x:fa[x]=Find(fa[x]); } int main(){ n=read(); For(i,1,n+1) fa[i]=i; For(i,1,n){ int op=read(),x=read(); if (op==1){ fa[x]=Find(x+1); } else { int k=Find(1); if (x==k) printf("%d\n",Find(x+1)); else printf("%d\n",k); } } }