#include<bits/stdc++.h>
using namespace std;
const int MAX=1e5+1;
vector<int>a;
int q,f,p[MAX];
int main(){
cin>>q;
for(int i=0;i<=2;i++)a.push_back(0);
a[1]=1,p[1]=1;
while(q--){
cin>>f;
if(f==1){
int x,y;
cin>>x>>y;
a.insert(a.begin()+p[x]+1,y);
p[y]=p[x]+1;
}else if(f==2){
int x;
cin>>x;
cout<<(x==int(a.size()-1)?0:a[p[x]+1])<<'\n';
}else if(f==3){
int x;
cin>>x;
p[a[p[x]+1]]=0;
a.erase(a.begin()+p[x]+1);
}
}
return 0;
}