#include <iostream>
using namespace std;
int h=1,t=0,a[200000],q,k,x,b[200000],o,t1=1;
int serch1(int p)
{
int l=1,r=t,mid,ans=-1;
while(l<=r){
mid=(l+r)/2;
if(a[mid]==p){
ans=mid;
r=mid-1;
}
else if(a[mid]>p){
r=mid-1;
}
else l=mid+1;
}
return ans;
}
int serch2(int p)
{
int l=1,r=t,mid,ans=-1;
while(l<=r){
mid=(l+r)/2;
if(a[mid]==p){
ans=mid;
l=mid+1;
}
else if(a[mid]>p){
r=mid-1;
}
else l=mid+1;
}
return ans;
}
int serch3(int p)
{
int l=1,r=t,mid,ans=-1;
while(l<=r){
mid=(l+r)/2;
if(a[mid]<p){
ans=mid+1;
l=mid+1;
}
else r=mid-1;
}
return ans;
}
int main()
{
cin>>q;
for(int i=1;i<=q;i++){
cin>>k>>x;
if(k==1){
o=serch1(x)+1;
b[i]=o;
}
else if(k==2){
b[i]=a[x];
}else if(k==3){
o=serch1(x);
if(o==-1||o-1<1){
b[i]=-2147483647;
}
else b[i]=a[o-1];
}
else if(k==4){
b[i]=serch2(x);
if(o==-1||o+1>t){
b[i]=2147483647;
}
else b[i]=a[o+1];
}
else if(k==5){
t++;
t1++;
a[t]=x;
x=t;
while(x>1&&a[x]<a[x-1]){
swap(a[x],a[x-1]);
}
}
}
for(int i=t1;i<=q;i++){
cout<<b[i]<<endl;
}
return 0;
}