F. Проверка на двудольность
ограничение по времени на тест
6 секунд
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Дан неориентированный граф, состоящий из n вершин. Изначально в графе нет рёбер. Также даны q запросов; каждый запрос либо добавляет ребро в граф, либо удаляет ранее добавленное. После каждого запроса необходимо проверить, что граф двудольный (т. е. можно покрасить все вершины в два цвета так, чтобы ни одно ребро не соединяло две вершины одного цвета).

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

В первой строке записаны два числа n и q (2 ≤ n, q ≤ 100000).

Затем следуют q строк. В i-й строке записаны два числа xi и yi (1 ≤ xi < yi ≤ n). Эти числа описывают i-й запрос: если существует ребро между вершинами xi и yi, то удалить его, иначе добавить его.

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

Выведите q строк. В i-й строке должно быть записано YES, если граф является двудольным после i-го запроса, и NO в противном случае.

Пример
Входные данные
3 5
2 3
1 3
1 2
1 2
1 2
Выходные данные
YES
YES
NO
YES
NO