問題文
株式会社n0ma_ruにはN人の社員が居て、それぞれ社員1、社員2、⋯、社員Nと呼ぶことにします。
このN人でじゃんけんにより上下関係を決定します。社員Xと社員Yがじゃんけんをして、社員Xが勝利したら社員Yは社員Xの部下になります。また、既に社員Yに部下がいたら、社員Yの全ての部下が社員Xの部下になります。逆に、社員Xは社員Yの上司になると言う事とします。
Q個のクエリが与えられるので、順に処理してください。i個目のクエリはquery iであり、各クエリは次の3種類のいずれかです。
1 x y
:社員xと社員yがじゃんけんし、社員xが勝利します。このクエリが与えられる直前の時点で、社員xと社員yはどちらも上司を一人も持たないものとします。
2 x
:その時点で、社員xの部下の数を求めて、出力してください。
3
:その時点で、上司を一人も持たない社員の人数を求めて出力してください。
制約
- 2≤N≤3×105
- 1≤Q≤3×105
- 1番目の形式のクエリにおいて、1≤x,y≤N
- 2番目の形式のクエリにおいて、1≤x≤N
- 入力はすべて整数です。
- 2番目の形式または3番目の形式のクエリは1回以上登場します。
入力
入力は以下の形式で標準入力から与えられます。
N Qquery1query2⋮queryQ
出力
query iが2番目の形式か3番目の形式であるようなi(1≤i≤Q)の個数をXとして、X行出力せよ。j(1≤j≤X)行目にはそのようなクエリの内j番目のクエリに対する答えを出力してください。最後に改行してください。
入力例1
3 6
3
2 1
1 2 3
1 1 2
2 2
3
出力例1
社員は3人です。以下のようにクエリが行われます。
- この時点で上司を一人も持たない社員の人数は3人のため3を出力します。
- この時点での社員1の部下の人数は0人のため0を出力します。
- 社員2と社員3がじゃんけんをして社員2が勝利しました。これにより社員3が社員2の部下になりました。
- 社員1と社員2がじゃんけんをして社員1が勝利しました。これにより社員2、社員3の2人が社員1の部下になりました。
- この時点での社員2の部下は社員3のみのため、1を出力します。
- この時点で上司を一人も持たない社員は社員1のみのため、1を出力します。
入力例2
出力例2
じゃんけんが一度も行われない場合もあります。