https://www.luogu.org/problem/P3369
#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;
typedef long long ll;
tree<ll,null_type,less<ll>,rb_tree_tag,tree_order_statistics_node_update> tr;
int main()
{
int n,op;ll x,ans;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d%lld",&op,&x);
if(op==1)
tr.insert((x<<20)+i);
if(op==2)
tr.erase(tr.lower_bound(x<<20));
if(op==3)
printf("%d\n",tr.order_of_key(x<<20)+1);
if(op==4)
{
ans=*tr.find_by_order(x-1);
printf("%lld\n",ans>>20);
}
if(op==5)
{
ans=*--tr.lower_bound(x<<20);
printf("%lld\n",ans>>20);
}
if(op==6)
{
ans=*tr.upper_bound((x<<20)+n);
printf("%lld\n",ans>>20);
}
}
return 0;
}