#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
int aa,len,root,ans,num,c[maxn],b[maxn],n,d[maxn<<1],lc[maxn<<1],rc[maxn<<1],op[maxn],a[maxn];
void Sol(){
sort(b+1,b+1+n);
len=unique(b+1,b+1+n)-b-1;
for(int i=1;i<=n;i++)
a[i]=lower_bound(b+1,b+1+len,a[i])-b;
}
void get_sum(int rt){
d[rt]=d[lc[rt]]+d[rc[rt]];
}
void update1(int &p,int s,int t,int pos){
if(!p) p=++num;
if(s==t){
d[p]++;
return;
}
int mid=s+t>>1;
if(pos<=mid) update1(lc[p],s,mid,pos);
else update1(rc[p],mid+1,t,pos);
get_sum(p);
}
void update2(int &p,int s,int t,int pos){
if(!p) p=++num;
if(s==t){
d[p]--;
return;
}
int mid=s+t>>1;
if(pos<=mid) update2(lc[p],s,mid,pos);
else update2(rc[p],mid+1,t,pos);
get_sum(p);
}
void ask1(int p,int s,int t,int l,int r){
if(!p) return ;
if(l<=s && r>=t){
ans+=d[p];
return;
}
get_sum(p);
int mid=s+t>>1;
if(l<=mid) ask1(lc[p],s,mid,l,r);
if(r>mid) ask1(rc[p],mid+1,t,l,r);
}
void ask2(int p,int s,int t,int pos){
if(!p) return ;
if(s==t){
printf("%d\n",b[s]);
return;
}
int mid=s+t>>1;
get_sum(p);
if(pos<=d[lc[p]]) ask2(lc[p],s,mid,pos);
else ask2(rc[p],mid+1,t,pos-d[lc[p]]);
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d%d",&op[i],&a[i]),b[i]=a[i],c[i]=a[i];
Sol();
for(int i=1;i<=n;i++){
if(op[i]==1) update1(root,1,len,a[i]);
else if(op[i]==2) update2(root,1,len,a[i]);
else if(op[i]==3) ask1(root,1,len,1,a[i]-1),printf("%d\n",ans+1),ans=0;
else if(op[i]==4) ask2(root,1,len,c[i]);
else if(op[i]==5) ask1(root,1,len,1,a[i]-1),ask2(root,1,len,ans),ans=0;
else{
ask1(root,1,len,1,a[i]+1);
aa=ans,ans=0;
ask1(root,1,len,1,a[i]);
if(aa==ans) ask2(root,1,len,ans+1),ans=0;
else ask2(root,1,len,aa),ans=0;
}
}
return 0;
}