#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
tree<long long, null_type, less<long long>, rb_tree_tag, tree_order_statistics_node_update> rbt;
int main()
{
register int n, opt, i;
register long long x;
cin>>n;
for(i = 1; i <= n; ++i)
{
cin>>opt>>x;
switch(opt)
{
case 1:
{
rbt.insert((x << 20) + i);
break;
}
case 2:
{
rbt.erase(rbt.lower_bound(x << 20));
break;
}
case 3:
{
cout<<rbt.order_of_key((x << 20) + 1)<<'\n';
break;
}
case 4:
{
cout<<(*rbt.find_by_order(x - 1) >> 20)<<'\n';
break;
}
case 5:
{
cout<<(*--rbt.lower_bound(x << 20) >> 20)<<'\n';
break;
}
case 6:
{
cout<<(*rbt.upper_bound((x << 20) + n) >> 20)<<'\n';
break;
}
}
}
}