404023 - 贪心的老板

游戏厅里每天玩游戏的玩家都排成了长长的队,贪心的老板为了挣到更多的钱,他定下了如下规定:

(1)任何一个玩家玩的时间均为T分钟;

(2)排队根据玩家玩一次愿意付出的钱数排序,即玩家愿意付出的费用越高,就越排在队列前面;

(3)排队的玩家随时可以增加费用以获得更高的优先权;

(4)队列中随时可以插入新的玩家,排列顺序按玩家愿付出的费用排序。

请你为游戏厅老板编程实现上述功能。

Input

第一行为一个整数n,表示初始时有n个玩家排队。第二行为n个整数,表示这n个玩家愿意付出的钱数。

随后的每一行为一个操作,分别为:

(1)输入1,则输出当前排在队列最前面的玩家付出的钱数。

(2)输入2,输出当前排在队列最前面的玩家付出的钱数后,该玩家出列。

(3)输入3 i v,其中i和v为整数,表示将排在队列中第i+1个玩家的钱数改为v,如果v的钱数不超过该玩家原先的钱数,则输出-1,且不改变该玩家的钱数。

(4)输入4 v,表示插入新的玩家,新的玩家付出的费用为v。

(5)输入0,程序结束。

Output

按操作的要求输出相应的值。

Examples

Input

5
1 2 3 4 5
1
2
3 2 10
1
4 6
3 3 1
2
2
2
2
0

Output

5
5
10
-1
10
6
4
3

Hint

1 \le n \le 1e5,操作次数不超过 1e5,值域为 1e9

Time Limit 1 second
Memory Limit 128 MB
Stats
上一题 下一题