#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
struct Node{
int now,next;
}a[N];
int n,b,x,y,tot=1;
int main(){
a[1].now=1;
cin>>n;
for(int i=1;i<=n;i++){
cin>>b;
if(b==1){
cin>>x>>y;
tot++;
a[y].next=a[x].next;
a[x].next=y;
a[y].now=y;
}
if(b==2){
cin>>x;
cout<<a[x].next<<endl;
}
if(b==3){
cin>>x;
a[a[x].next].next=0;
a[x].next=a[a[a[x].next].next].now ;
}
}
return 0;
}