#include<bits/stdc++.h>
using namespace std;
struct node{
int d;
node* next;
}*head,*p,*q;
void f(int a){
q=p;
while(p->d!=a)q=q->next;
}
void push(int a,int b){
f(a);
node* pp=new node;
pp->d=b;
pp->next=q->next;
q->next=pp;
}void ans(int a){
f(a);
cout<<(p->next)->d<<"\n";
}void pop(int a){
f(a);
q->next=(q->next)->next;
}
int main(){
int n,a,x,y;
cin>>n;
head=new node;
p=head;
p->d=1;
p->next=NULL;
while(n--){
cin>>a;
if(a==1){
cin>>x>>y;
push(x,y);
}else if(a==2){
cin>>x;
ans(x);
}else{
cin>>x;
pop(x);
}
}
return 0;
}