#P2160. 水王的奇妙集合

水王的奇妙集合

题目描述

水王有一个由 nn 个整数组成的多重集。他希望你处理以下两种操作:

  • 将整数 kk 加入集合;
  • 删除集合中第 kk 小的数。

如果当前操作需要删除一个在集合中多次出现的元素,则只删除其中的一个。

在处理所有操作之后,如果它是空的,输出 "0" ;否则输出集合中最小的数字。

输入格式

第一行包含两个整数 nnqq (1n,q1061 \le n,q \le 10^6 ) ——初始集合中的元素数和操作数。

第二行包含 n 个整数 a1a_1, a2a_2,..., ana_n( 1a1a2...ann1 \le a_1 \le a_2 \le ... \le a_n \le n ) 表示多重集中的元素。

第三行包含 qq 个整数 k1k_1, k2k_2,... , kqk_q,每个 kik_i 表示一个操作:

  • 如果 1kin1 \le k_i \le n ,则第 ii 个操作为 “在集合中加入 kik_i
  • 如果 ki<0k_i \lt 0 ,则第 ii 个操作是 “从集合中删除第 ki|k_i| 小的数”。对于这个操作,可以保证 ki|k_i| 不大于集合当前的大小。

输出格式

如果所有操作后的集合为空,则打印 "0"。否则,输出集合中最小的数字。

样例

5 5
1 2 3 4 5
-1 -1 -1 -1 -1
0

样例 1 解释

每次修改后的集合为:

{2 3 4 5}

{3 4 5 }

{4 5}

{5}

{}

因为集合最后为空,所以输出 0

5 4
1 2 3 4 5
-5 -1 -3 -1
3

样例 2 解释

第二个样例,每次修改后的集合为:

{1 2 3 4}

{2 3 4}

{2 3}

{3}

最后集合剩下了 3 ,所以输出 3

6 2
1 1 1 2 3 4
5 6
1

样例 3 解释

每次修改后的集合为:

{1 1 1 2 3 4 5}

{1 1 1 2 3 4 5 6}

最后集合内还剩 8 个数字,因为要输出最小的数字,所以输出 1

数据范围

|---------------|-------------|-------------|
|   数据点编号   |      n<=     |     q<=     |
|---------------|-------------|-------------|
|    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    |
|---------------|-------------|-------------|