E. Тропический сезон
ограничение по времени на тест
4 секунды
ограничение по памяти на тест
1024 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

Перед вами находятся $$$n$$$ бочек бесконечной вместимости. В $$$i$$$-й бочке изначально находится $$$a_i$$$ килограмм воды. В этой задаче мы считаем, что все бочки сами по себе весят одинаково.

Вам известно, что на поверхности ровно одной из бочек распределено небольшое количество тропического яда, общий вес нанесённого яда составляет $$$0.179$$$ килограмм. Но вы не знаете, на какой именно бочке находится яд. Ваша задача определить эту ядовитую бочку.

Все бочки стоят на весах. К сожалению, весы не показывают точный вес каждой из бочек. Вместо этого, для каждой пары бочек они показывают результат сравнения между весами этих бочек. Таким образом, для любых двух бочек вы можете определить, совпадают ли их веса, а если нет, вес какой из бочек больше. Яд и вода учитываются в весе бочки.

Весы работают постоянно, и информацию с них можно использовать в неограниченном количестве.

Также вам доступны переливания. Вы можете переливать воду из любой бочки в любую другую в любых количествах.

Но для переливания вам надо взять в руки бочку, из которой вы будете переливать, поэтому если это окажется ядовитая бочка, вы умрёте. Такого исхода допустить нельзя.

Однако в ядовитую бочку наливать воду можно, её вы не касаетесь.

Другими словами, вы можете выбрать числа $$$i, j, x$$$ ($$$i \neq j, 1 \leq i, j \leq n, 0 < x \leq a_i$$$, бочка под номером $$$i$$$ не является ядовитой) и выполнить $$$a_i := a_i - x$$$, $$$a_j := a_j + x$$$. Где $$$x$$$ не обязательно является целым числом.

Возможно ли гарантированно определить, в какой из бочек яд, и остаться живым, используя переливания и информацию с весов? Вам известно, что яд находится ровно на одной из бочек.

Также мы просим вас обработать $$$q$$$ запросов. В каждом запросе либо удаляется одна из имеющихся бочек, либо добавляется дополнительная бочка с каким-то количеством воды. После каждого запроса надо ответить, возможно ли гарантированно определить ядовитую бочку, если известно, что она ровно одна?

Входные данные

Первая строка содержит два целых числа $$$n$$$ и $$$q$$$ ($$$1 \le n, q \le 2 \cdot 10^5$$$).

Вторая строка содержит $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \le a_i \le 10^6$$$) — объёмы воды в имеющихся бочках.

В следующих $$$q$$$ строках вводятся запросы, по одному в строке. Каждый запрос имеет вид, либо + x, либо - x, что означает, соответственно, добавление и удаление бочки с $$$x$$$ килограммами воды. Гарантируется, что при запросе - x одна из имеющихся бочек имеет объём $$$x$$$, а также, что по ходу запросов всегда остаётся хотя бы одна бочка. Во всех запросах выполняется $$$1 \leq x \leq 10^6$$$.

Выходные данные

Выведите $$$q+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]$$$. Вы можете посмотреть на значение сравнения первой и второй бочки. Если результат не равенству, можно однозначно заключить, что бочка с большим весом — ядовитая. Если же результат равенству, обе бочки неядовиты. Тогда можно перелить всё содержимое первой бочки во вторую. После чего во второй и в третьей бочки будет по $$$4$$$ килограмма воды. Посмотрим на значение сравнения второй и третьей бочки. Если результат не равенству, бочка с большим весом — ядовитая. Иначе, обе бочки не ядовитые. И единственная бочка, которая может быть ядовитой — бочка 4. Итого с такой стратегией, мы можем безопасно определить ядовитую бочку.