#CF2066E. 热带季节

热带季节

E. 热带季节

每个测试点的时间限制:44
每个测试点的内存限制:10241024 兆字节

你有 nn 个容量无限的桶。第 ii 个桶最初装有 aia_i 公斤水。本题中,假设所有桶本身的重量相同。

你知道恰好有一个桶的表面沾有少量热带毒药,总重量为 0.1790.179 公斤。但你不知道哪个桶含有毒药。你的任务是找出这个有毒的桶。

所有桶都放在秤上。不幸的是,秤不显示每个桶的精确重量,而是对于每一对桶,显示它们重量的比较结果。因此,对于任意两个桶,你可以判断它们的重量是否相等,如果不相等,哪个更重。毒药和水都计入桶的重量。

秤始终开启,并且可以无限次使用这些比较信息。

你还可以倒水。你可以将水从任意桶倒入任意其他桶,数量任意。

但是,要倒水,你必须亲手拿起你倒出的那个桶,所以如果那个桶恰好是有毒的,你就会死。必须避免这种情况。

不过,你可以将水倒入有毒的桶而不接触它。

换句话说,你可以选择编号 i,j,xi, j, xiji \neq j1i,jn1 \le i, j \le n0<xai0 < x \le a_i,编号为 ii 的桶无毒),并执行 ai:=aixa_i := a_i - xaj:=aj+xa_j := a_j + x。这里 xx 不一定是整数。

是否有可能通过倒水操作和秤的比较信息,保证找出哪个桶含有毒药,并且保持安全?你知道毒药恰好在一个桶上。

此外,你需要处理 qq 个查询。在每个查询中,要么移除一个现有桶,要么添加一个装有特定水量的桶。每次查询后,你需要回答是否可能保证找出有毒的桶(已知恰好有一个桶有毒)。


输入
第一行包含两个整数 nnqq1n,q21051 \le n, q \le 2 \cdot 10^5)。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1061 \le a_i \le 10^6)——现有桶中的水量。

接下来的 qq 行每行包含一个查询,格式为 + x- x,分别表示添加一个水量为 xx 的桶,或移除一个水量为 xx 的桶。保证当执行 - x 查询时,存在一个水量为 xx 的桶,并且整个查询过程中始终至少有一个桶存在。所有查询中,1x1061 \le x \le 10^6


输出
输出 q+1q+1 行,分别对应所有查询之前以及每次查询之后的答案。如果可能找出有毒的桶,输出 Yes,否则输出 No。你可以以任意大小写输出答案,例如 "yEs""yes""Yes""YES" 都会被识别为肯定回答。


示例
输入

4 7
2 2 4 11
- 2
+ 4
+ 30
+ 40
- 4
+ 2
+ 2

输出

Yes
No
Yes
No
Yes
No
No
Yes

输入

6 7
5000 1000 400 400 100 99
+ 1
- 5000
- 1
- 400
- 400
- 100
- 99

输出

No
Yes
Yes
Yes
No
No
No
Yes

注意
在第一个测试中,在查询之前,桶的重量为 [2,2,4,11][2,2,4,11]。你可以比较第一个和第二个桶的值。如果结果不相等,你可以确定较重的那一桶有毒。如果相等,则两个桶都无毒。然后你可以将第一个桶的所有内容倒入第二个桶。之后,第二个和第三个桶都含有 44 公斤水。现在比较第二个和第三个桶的值。如果结果不相等,则较重的那一桶有毒。否则,两个桶都无毒。唯一可能有毒的桶是第 44 个桶。因此,通过这个策略,我们可以安全地确定有毒的桶。