题目描述
干扰器上的问题需要烛龙战队建立一个空的序列,对这个序列将有三种操作,每种操作用参数op表示种类。
op=1时,会再给一个参数m,烛龙战队要向序列插入m这个元素。
op=2时,需要删除序列中最早插入的元素,输出被删除的这个元素是第几个被插入到序列的。
op=3时,需要删除序列中数值最大的元素,输出被删除的这个元素是第几个被插入到序列的,如果有若干个元素都满足值最大这个要求,要删除的元素就是最早被插入的元素。
一共有n次操作,烛龙战队需要设计一个程序完成上面的需求。
输入
输入包括若干行。
第一行包含一个整数n,代表共有n次操作。(1 <= n <= 5*10^5)
接下来你要构造程序,实现下面三种操作,每个操作首先用参数op表示种类,具体的:
op=1时,再给定一个参数m,你要向序列插入m这个元素。
op=2时,删除序列中最早插入的元素,输出被删除的这个元素是第几个被插入到序列的。
op=3时,删除序列中数值最大的元素,输出被删除的这个元素是第几个被插入到序列的,特别的,如果有若干个元素都满足值最大这个要求,要删除的元素是最早被插入的元素。(1 ≤ m ≤ 5 × 10^5, 1 ≤ op ≤ 3)
输出
对于每个类型为2或3的查询,输出一个整数。
样例输入
8
1 8
1 10
1 6
3
2
1 9
2
3
样例输出
2 1 3 4