定期的に人間関係をリセットしたくなるやつ

2 secs 1024 MB
Tonegawac's icon Tonegawac

問題文

NN人の人間によって構成される世界があります。はじめ、全ての人間は孤独であり、自分1人のコミュニティに属しています。
これに対し、以下の形式で QQ 回与えられる操作を処理してください。

  • 1ab1\hspace{5pt}a\hspace{5pt}baa さんと bb さんの手腕により、aa さんの属しているコミュニティと bb さんの属しているコミュニティを合併する。
        処理を行う時点で既にaa さんと bb さんが同じコミュニティに属している場合は何もしません。

  • 2a2\hspace{5pt}aaaさんの属しているコミュニティの現在の人数を出力する。

  • 3a3\hspace{5pt}aaa さんは人間関係をリセットしたくなりました。aa さんは所属しているコミュニティを離脱し、全ての連絡先を消して孤独になります。
       これにより、aa さんは自分1人だけが所属する新たなコミュニティに属し、aa さんが元々属していたコミュニティの人数は1人減ります。
       過去に aa さんがコミュニティの合併に携わってきたかは関係なく、このような処理になります。
       また、処理を行う時点で既に aa さんの所属するコミュニティの人数が1人だった場合は何もしません。

制約

  • 入力は全て整数である。
  • 1N,Q1000001 \leq N, Q \leq 100000
  • 1ai,biN1 \leq a_i, b_i \leq N (1iQ)(1 \leq i \leq Q)
  • aibia_i \neq b_i (1iQ)(1 \leq i \leq Q)

入力

N Q
Query_1
Query_2
Query_3
...
Query_Q

サンプル

入力1
5 5
1 4 5
1 2 1
2 4
3 1
2 1
出力1
2
1
入力2
5 5
3 1
1 1 5
1 5 3
3 5
2 1
出力2
2

提出


Go (1.21)