#include <stdio.h>
#define max(a,b) (((a)>(b))?(a):(b))
#define min(a,b) (((a)<(b))?(a):(b))
int q,op,x,cont;
struct tree{
int val;
int left,right;
int cnt;
int size;
}a[10010];
void insert(int root,int x){
if(a[root].val==0){
cont++;
a[cont].val=x;
a[cont].cnt=a[cont].size=1;
return ;
}
a[root].size++;
if(x==a[root].val){
a[root].cnt++;
return ;
}
if(x<a[root].val){
if(a[root].left!=0){
insert(a[root].left,x);
}
else{
cont++;
a[cont].val=x;
a[cont].cnt=a[cont].size=1;
a[root].left=cont;
}
}
if(x>a[root].val){
if(a[root].right!=0){
insert(a[root].right,x);
}
else{
cont++;
a[cont].val=x;
a[cont].cnt=a[cont].size=1;
a[root].right=cont;
}
}
}
int search_qian(int root,int x,int ans){
if(a[root].val>=x){
if(a[root].left!=0){
return ans=search_qian(a[root].left,x,ans);
}
else{
return ans;
}
}
else{
ans=max(ans,a[root].val);
if(a[root].right!=0){
return ans=search_qian(a[root].right,x,ans);
}
else{
return a[root].val;
}
}
return ans;
}
int search_hou(int root,int x,int ans){
if(a[root].val<=x){
if(a[root].right!=0){
return ans=search_hou(a[root].right,x,ans);
}
else{
return ans;
}
}
else{
ans=min(ans,a[root].val);
if(a[root].left!=0){
return ans=search_hou(a[root].left,x,ans);
}
else{
return a[root].val;
}
}
return ans;
}
int search_rate(int root,int x){
if(root==0)return 1;
else if(a[root].val==x){
return a[a[root].left].size+1;
}
else if(a[root].val<x){
return search_rate(a[root].right,x)+a[a[root].left].size+a[root].cnt;
}
else{
return search_rate(a[root].left,x);
}
}
int search(int root,int rate){
if(root==0)return 2147483647;
else if(a[a[root].left].size>=rate){
return search(a[root].left,rate);
}
else if(a[a[root].left].size+a[root].cnt>=rate){
return a[root].val;
}
else{
return search(a[root].right,rate-a[a[root].left].size-a[root].cnt);
}
}
int main(){
scanf("%d",&q);
while(q--){
scanf("%d%d",&op,&x);
if(op==1)printf("%d\n",search_rate(1,x));
else if(op==2)printf("%d\n",search(1,x));
else if(op==3)printf("%d\n",search_qian(1,x,-2147483647));
else if(op==4)printf("%d\n",search_hou(1,x,2147483647));
else if(op==5)insert(1,x);
}
return 0;
}