#include <bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
__gnu_pbds ::tree<pair<int, int>, __gnu_pbds::null_type, less<pair<int, int> >,
__gnu_pbds::rb_tree_tag,
__gnu_pbds::tree_order_statistics_node_update>
trr;
int main(){
int n,op,x,cnt=0;
cin>>n;
for(int i=1;i<=n;i++){
cin>>op>>x;
if(op==1){
trr.insert(make_pair(x,cnt++));
}
if(op==2){
auto it=trr.lower_bound(make_pair(x,0));
trr.erase(it);
}
if(op==3){
int pos=trr.order_of_key(make_pair(x,0));
cout<<pos+1<<endl;
}
if(op==4){
auto it=trr.find_by_order(x-1);
cout<<(*it).first<<endl;
}
if(op==5){
auto it=trr.lower_bound(make_pair(x,0));
it--;
cout<<(*it).first<<endl;
}
if(op==6){
auto it=trr.upper_bound(make_pair(x,0));
cout<<(*it).first<<endl;
}
}
return 0;
}