**水王**有一个由 n 个整数组成的多重集。他希望你处理以下两种操作:
-将整数 k 加入集合; -删除集合中第 k 小的数。
如果当前操作需要删除一个在集合中多次出现的元素,则只删除其中的一个。
在处理所有操作之后,如果它是空的,输出 "0" ;否则输出集合中最小的数字。
第一行包含两个整数 n 和 q(1≤n,q≤10^6) ——初始集合中的元素数和操作数。
第二行包含 n 个整数 a_1, a_2,…, a_n(1≤a_1≤a_2≤……≤a_n≤n) 表示多重集中的元素。
第三行包含 q 个整数k_1, k_2,…, k_q,每个 k 表示一个操作:
-如果 1≤k_i≤n ,则第 i 个操作为“在集合中加入 k_i”
-如果 k_i< 0 ,则第 i 个操作是“从集合中删除第 |k_i| 小的数”。对于这个操作,可以保证 |k_i| 不大于集合当前的大小。
如果所有操作后的集合为空,则打印" 0 "。
否则,输出在集合中的任意一个整数。
5 5 1 2 3 4 5 -1 -1 -1 -1 -1
0
5 4 1 2 3 4 5 -5 -1 -3 -1
3
6 2 1 1 1 2 3 4 5 6
1
样例解释
第一个样例,每次修改后的集合为:
2 3 4 5
3 4 5
4 5
5
空
因为集合最后为空,所以输出0
第二个样例,每次修改后的集合为:
1 2 3 4
2 3 4
2 3
3
最后集合剩下了3,所以输出3
第三个样例,每次修改后的集合为:
1 1 1 2 3 4 5
1 1 1 2 3 4 5 6
最后集合内还剩8个数字,因为要输出最小的数字,所以输出1
数据范围
| 数据点编号 | n\leq | q\leq |
| :-------------: | :---------: | :---------: |
| 1,2,3,4 | 500 | 500 |
| 5,6,7,8 | 5000 | 5000 |
| 9,10,11,12 | 50000 | 50000 |
| 13,14,15,16 | 200000 | 200000 |
| 17,18,19,20 | 1000000 | 1000000 |
时间限制 | 2 秒 |
内存限制 | 28 MB |