#include <bits/stdc++.h>
using namespace std;
typedef struct LinkNode{
int data;
struct LinkNode *next;
}LinkNode;
LinkNode *InitList(LinkNode *L){
L->data=1;
L->next=NULL;
}
LinkNode *InsertList(LinkNode *L,int x,int y){
LinkNode *s=(LinkNode *)malloc(sizeof(LinkNode)),*p=L;
while(p->data!=x){
p=p->next;
}
s->data=y;
s->next=p->next;
p->next=s;
}
LinkNode *RequestList(LinkNode *L,int x){
LinkNode *p=L;
while(p->data!=x){
p=p->next;
}
if(p->next==NULL) {
cout<<0<<endl;
}
cout<<p->next->data<<endl;
}
LinkNode *DeleteList(LinkNode *L,int x){
LinkNode *p=L;
while(p->data!=x){
p=p->next;
}
LinkNode *s=p->next;
p->next=s->next;
}
int main(){
LinkNode L;
InitList(&L);
int t;
cin>>t;
while(t--){
int flag,x,y;
cin>>flag;
if(flag==1) {
cin>>x>>y;
InsertList(&L,x,y);
continue;
}
if(flag==2) {
cin>>x;
RequestList(&L,x);
continue;
}
else {
cin>>x;
DeleteList(&L,x);
continue;
}
}
return 0;
}