#include<bits/stdc++.h>
using namespace std;
int n,cz;
typedef struct nodes{
int data;
struct nodes *next;
}lnode,*linklist;
void initlist(linklist &L){
L=new lnode;
lnode *s=new lnode;
s->data=1;
s->next=NULL;
L->next=s;
return ;
}
bool listinsert(linklist &L,int a,int b){
lnode *p=L->next;
while(p!=NULL&&p->data!=a){
p=p->next;
}
if(p==NULL){
return false;
}
lnode *s=new lnode;
s->data=b;
s->next=p->next;
p->next=s;
return true;
}
int watchlist(linklist &L,int val){
lnode *p=L;
while(p->next!=NULL){
p=p->next;
if(p->data==val){
break;
}
}
if(p->next==NULL){
return 0;
}
lnode *q=p->next;
return q->data;
}
bool deletelist(linklist &L,int val){
lnode *p=L;
while(p->next!=NULL){
p=p->next;
if(p->data==val){
break;
}
}
if(p->next==NULL){
return false;
}
lnode *q=p->next;
p->next=q->next;
delete q;
return true;
}
int main(){
int x,y;
cin>>n;
linklist l1;
initlist(l1);
while(n--){
cin>>cz;
if(cz==1){
cin>>x>>y;
listinsert(l1,x,y);
}else if(cz==2){
cin>>x;
int res=watchlist(l1,x);
cout<<res<<endl;
}else{
cin>>x;
deletelist(l1,x);
}
}
return 0;
}