AT_abc395_d [ABC395D] Pigeon Swap

Description

鳩 $ 1, $ 鳩 $ 2,\ldots, $ 鳩 $ N $ の $ N $ 羽の鳩と、巣 $ 1, $ 巣 $ 2,\ldots, $ 巣 $ N $ の $ N $ 個の巣があります。 はじめ、鳩 $ i $ $ (1\leq i\leq N) $ は巣 $ i $ にいます。 鳩たちに対して $ Q $ 回の操作を行います。 操作は次の $ 3 $ 種類のうちのいずれかです。 - 種類 $ 1 $ : 整数 $ a,b $ $ (1\leq a\leq N,1\leq b\leq N) $ が与えられる。鳩 $ a $ を今いる巣から取り出し、巣 $ b $ へ移動する。 - 種類 $ 2 $ : 整数 $ a,b $ $ (1\leq a\lt b\leq N) $ が与えられる。巣 $ a $ にいる鳩をすべて巣 $ b $ へ移動し、巣 $ b $ にいる鳩をすべて巣 $ a $ へ移動する。これら $ 2 $ つの移動は一斉に行われる。 - 種類 $ 3 $ : 整数 $ a $ $ (1\leq a\leq N) $ が与えられる。鳩 $ a $ が今いる巣の番号を報告する。 $ Q $ 回の操作を順に行ったときの、種類 $ 3 $ の各操作における報告の結果を出力してください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ Q $ $ op _ 1 $ $ op _ 2 $ $ \vdots $ $ op _ Q $ ただし、 $ i+1 $ 行目の入力 $ op _ i $ は $ i $ 番目の操作を表しており、 $ op _ i $ は次のいずれかの形式である。 $ i $ 番目の操作が種類 $ 1 $ の操作のとき、 $ i+1 $ 行目は次の形式で与えられる。 > $ 1 $ $ a $ $ b $ これは、与えられる整数を $ a $ と $ b $ として種類 $ 1 $ の操作を行うことを表している。 $ i $ 番目の操作が種類 $ 2 $ の操作のとき、 $ i+1 $ 行目は次の形式で与えられる。 > $ 2 $ $ a $ $ b $ これは、与えられる整数を $ a $ と $ b $ として種類 $ 2 $ の操作を行うことを表している。 $ i $ 番目の操作が種類 $ 3 $ の操作のとき、 $ i+1 $ 行目は次の形式で与えられる。 > $ 3 $ $ a $ これは、与えられる整数を $ a $ として種類 $ 3 $ の操作を行うことを表している。

Output Format

与えられる種類 $ 3 $ の操作の個数を $ q $ 個として、 $ q $ 行にわたって出力せよ。 $ i $ 行目 $ (1\leq i\leq q) $ には、種類 $ 3 $ の操作のうち $ i $ 番目の操作で報告される巣の番号を出力せよ。

Explanation/Hint

### Sample Explanation 1 与えられる操作で、鳩は以下の図のように移動します。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_abc395_d/aa7042060a2c36eff76e5cd92994b4b70259bcac2c4699a24c3053f7fce61b57.png) 種類 $ 3 $ の操作でそれぞれ報告すべき巣の番号は $ 4,5,2,5 $ なので、`4` `5` `2` `5` を $ 4 $ 行にわたって出力してください。 ### Sample Explanation 2 種類 $ 1 $ の操作で、鳩を取り出した巣にそのまま戻す場合もあります。 ### Constraints - $ 1\leq N\leq10 ^ 6 $ - $ 1\leq Q\leq3\times10 ^ 5 $ - 入力される操作はすべて種類 $ 1, $ 種類 $ 2, $ 種類 $ 3 $ のいずれかである。 - 入力される操作は問題文中の制約を満たす。 - 入力される操作のうちに種類 $ 3 $ の操作が $ 1 $ つ以上含まれる。 - 入力はすべて整数