#include<cstdio>
#include<iostream>
using namespace std;
const int maxn=2e5+10;
int psz,root;
int key[maxn],sz[maxn];
int ch[maxn][2];
void insert(int &u,int x){
if(u==0){
u=++psz;
key[u]=x,sz[u]=1,ch[u][0]=ch[u][1]=0;
return;
}
++sz[u];
insert(ch[u][x>key[u]],x);
}
int rk(int u,int x){
if(!u) return 0;
if(x>key[u]) return sz[ch[u][0]]+1+rk(ch[u][1],x);
return rk(ch[u][0],x);
}
int select(int u,int x){
if(x==ch[u][0]) return key[u];
if(x<ch[u][0]) return select(ch[u][0],x);
return select(ch[u][1],x-sz[ch[u][0]]-1);
}
int main(){
insert(root,-INT_MAX);
insert(root,+INT_MAX);
int n;
cin>>n;
while(n--){
int op,x;
cin>>op>>x;
if(op==1){
cout<<rk(root,x)<<endl;
}else if(op==2){
cout<<select(root,x)<<endl;
}else if(op==3){
cout<<select(root,rk(root,x)-1)<<endl;
}else if(op==4){
cout<<select(root,rk(root,x+1))<<endl;
}else{
insert(root,x);
}
}
return 0;
}