EduBrick

L. Система множеств с откатом

2500 мс · 256 МБ · всё или ничего

Изначально каждая из nn вершин лежит в своём множестве. Обрабатывайте операции:

  • + u v — объединить множества, содержащие uu и vv;
  • - — отменить последнюю операцию объединения (в том числе ту, которая ничего не изменила);
  • ? — вывести текущее количество множеств.

Отмена применяется только тогда, когда есть что отменять.

Формат ввода

В первой строке — числа nn и qq (1≤n,q≤3⋅1051 \le n, q \le 3 \cdot 10^5). Далее qq операций в описанном формате; 1≤u,v≤n1 \le u, v \le n.

Формат вывода

На каждый запрос ? выведите количество множеств.

Примеры

ввод
5 6
?
+ 1 2
+ 2 3
?
-
?
вывод
5
3
4
ввод
1 1
?
вывод
1
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.