#include<bits/stdc++.h>
using namespace std;
int a[1000005],ne[1000005];
int idx=1;
void chushihua()
{
a[0]=1;
ne[0]=-1;
}
void charu(int x1,int x2)
{
a[idx]=x2;
ne[idx]=ne[x1];
ne[x1]=idx++;
}
void chaxun(int x1)
{
if(ne[x1]==-1){
cout<<"0"<<endl;
return ;
}
cout<<a[ne[x1]]<<endl;
}
void shanchu(int x1)
{
ne[x1]=ne[ne[x1]];
}
int main()
{
int q;
cin>>q;
chushihua();
while(q--)
{
int x;
cin>>x;
switch(x)
{
case 1:
int x1,x2;
cin>>x1>>x2;
charu(x1,x2);
break;
case 2:
cin>>x1;
chaxun(x1);
break;
case 3:
cin>>x1;
shanchu(x1);
}
}
return 0;
}