Mex
题号:NC219579
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

强哥定义了一种新的操作MexMex(S)表示S数组中未出现的最小正整数。

例如Mex({4,1,4,3,5,7,6}) = 2 Mex({1,2,3,4,5}) = 6.

现在强哥想要研究这种操作某些性质。强哥会先给你一个长度为n的数组S,然后接下来他会进行m次操作,操作为添加某个数或者删除某个数,保证删除的数一定存在于数组中。然后需要你告诉强哥现在Mex(S)是多少。

输入描述:

输入两个整数n,m,代表初始时数组中数字的个数和进行的m次操作

接下来一行有n个整数,代表初始时的数组。

接下来m行,每行一个整数x,若x为负数,代表删去|x|(x的绝对值),反之为添加x。

输出描述:

输出m+1个整数。先输出初始时Mex(S),然后每次操作后都输出Mes(S)。注意,每次操作后数组不会还原。

示例1

输入

复制
5 5
1 3 2 4 4
5
-4
-4
-1
1

输出

复制
5
6
6
4
1
4

说明

{1,2,3,4, 4} 未出现的最小正整数是 5
{1,2,3,4,4,5} 未出现的最小正整数是6
{1,2,3,4,5} 未出现的最小正整数是6
{1,2,3,5} 未出现的最小正整数是4
{2,3,5} 未出现的最小正整数是1

备注: