#include<stdio.h>
# define N 1000010
int head,e[N],ne[N],idx;
void insert(int x,int y){
e[idx]=y;
ne[idx]=ne[x];
ne[x]=idx;
idx++;}
int re(int x){
return e[ne[x]];}
void dele(int x){
ne[x]=ne[ne[x]];}
int main(){
int m=0;
scanf("%d",&m);
int a=0;
head=-1,idx=0;
while(m--){
int x=0,y=0;
scanf("%d",&a);
if(a==1){
scanf("%d %d",&x,&y);
insert(x,y);
}
else if(a==2){
scanf("%d",&x);
printf("%d\n",re(x));}
else{
scanf("%d",&x);
dele(x);}
}
return 0;}