| MSPU Training Contest 2018-2019 |
|---|
| Finished |
В сказочной стране Айландлэнде правит добрый и мудрый король.
На данный момент, Айландлэнд состоит из $$$n$$$ островов, пронумерованных числами от $$$1$$$ до $$$n$$$, на каждом из которых живут жители. Никакие два острова не связаны между собой мостами, поэтому жителям приходится добираться от одного острова до другого вплавь.
Иногда на каком-то из островов происходит наводнение, и тогда все жители этого острова переселяются жить на какой-то другой остров. При этом сам остров остаётся на месте и через него можно путешествовать или переселиться на него в будущем.
Король решил начать строить мосты между островами, но строительство мостов - дело достаточно непредсказуемое. Король получает донесения двух видов:
1) В донесении первого вида сообщается, что между островами $$$u_i$$$ и $$$v_i$$$ удалось построить мост. Движение по мосту возможно в обоих направлениях.
2) В донесении второго вида сообщается, что на острове $$$u_i$$$ произошло наводнение и все его жители (если они были) переселились на остров $$$v_i$$$.
Таким образом, каждое донесение задаётся тремя параметрами: своим типом и упорядоченной парой островов.
Королю необходимо планировать будущие расходы, поэтому после каждого донесения ему интересно знать, какое минимальное количество мостов необходимо дополнительно построить, чтобы из любого заселённого (на текущий момент) острова можно было по суше добраться до любого другого заселённого острова.
Обратите внимание, что в задаче требуется ввести много данных!
В первой строке записаны два целых числа $$$n$$$ и $$$q$$$ ($$$2 \leq n \leq 3*10^5$$$, $$$1 \leq q \leq 3*10^5$$$) - количество островов и количество донесений соответственно.
Следующие $$$q$$$ строк содержат по три целых числа $$$t_i$$$, $$$u_i$$$, $$$v_i$$$ - информацию об $$$i$$$-м донесении ($$$1 \leq t_i \leq 2$$$, $$$1 \leq u_i, v_i \leq n $$$).
При этом $$$t_i$$$ задаёт тип донесения ($$$t_i=1$$$ означает, что донесение о новом мосте, а $$$t_i=2$$$ означает, что донесение о наводнении), а $$$u_i$$$ и $$$v_i$$$ означают номера островов в тех же обозначениях, что и в условии задачи.
Гарантируется, что $$$u_i \neq v_i$$$ для любого $$$i$$$.
Выведите $$$q$$$ чисел, где $$$i$$$-е число означает минимальное количество мостов, которое необходимо дополнительно построить, чтобы из любого заселённого острова можно было добраться по суше до любого другого заселённого острова, на момент после $$$i$$$-го донесения.
5 5 1 1 2 1 2 3 1 1 3 1 4 5 1 1 4
3 2 2 1 0
5 6 2 1 2 2 2 1 2 1 3 2 5 4 2 4 3 2 3 1
3 3 2 1 0 0
9 11 1 1 2 1 3 4 1 5 6 2 6 4 2 5 3 1 7 8 1 1 8 1 5 9 2 9 5 2 1 2 2 1 3
7 6 5 5 4 3 2 2 2 2 2
Заметим, что между двумя островами может быть построен более, чем один мост.
| Name |
|---|


