#include
using namespace std;
int n;
vector q;
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){int op,k;scanf("%d%d",&op,&k);if(op==1) q.insert(lower_bound(q.begin(),q.end(),k),k);if(op==2) q.erase(lower_bound(q.begin(),q.end(),k));if(op==3) printf("%d\n",lower_bound(q.begin(),q.end(),k)-q.begin()+1);if(op==4) printf("%d\n",q.at(k-1));if(op==5) printf("%d\n",q.at(lower_bound(q.begin(),q.end(),k)-q.begin()-1));if(op==6) printf("%d\n",q.at(upper_bound(q.begin(),q.end(),k)-q.begin()));}return 0;
}
listlist1;
list.push_back();
list.push_front();
list.pop_back();
list.pop_front();
list.front();
list.back();
list.empty();
list.size();
list.clear();
list.remove(2);//删除列表中值为2的所有元素(or 其他类型)
list.insert(list.begin()+i,a); //在第i个元素后插入a
list.erase(list.begin()+i);
swap(list1,list2);//将list1和list2交换
list1.splice(list1.begin(),list2);//将list2连接到list1的begin()位置
list.reverse();//反转
list.sort();//升序
bitsetbitsetbitset 在算导上的简述