AT_abc278_c [ABC278C] FF
Description
[problemUrl]: https://atcoder.jp/contests/abc278/tasks/abc278_c
高橋君が運営する SNS「Twidai」にはユーザー $ 1 $ からユーザー $ N $ までの $ N $ 人のユーザーがいます。 Twidai では、ユーザーは別のユーザーをフォローすることや、フォローを解除することができます。
Twidai がサービスを開始してから、$ Q $ 回の操作が行われました。 $ i $ 回目 $ (1\leq\ i\leq\ Q) $ の操作は $ 3 $ つの整数 $ T\ _\ i,\ A\ _\ i,\ B\ _\ i $ で表され、それぞれ次のような操作を表します。
- $ T\ _\ i=1 $ のとき:ユーザー $ A\ _\ i $ がユーザー $ B\ _\ i $ をフォローしたことを表す。この操作の時点でユーザー $ A\ _\ i $ がユーザー $ B\ _\ i $ をフォローしている場合、ユーザーのフォロー状況に変化はない。
- $ T\ _\ i=2 $ のとき:ユーザー $ A\ _\ i $ がユーザー $ B\ _\ i $ のフォローを解除したことを表す。この操作の時点でユーザー $ A\ _\ i $ がユーザー $ B\ _\ i $ をフォローしていない場合、ユーザーのフォロー状況に変化はない。
- $ T\ _\ i=3 $ のとき:ユーザー $ A\ _\ i $ とユーザー $ B\ _\ i $ が互いにフォローしているかをチェックすることを表す。この操作の時点でユーザー $ A\ _\ i $ がユーザー $ B\ _\ i $ をフォローしており、かつユーザー $ B\ _\ i $ がユーザー $ A\ _\ i $ をフォローしているとき、このチェックに対して `Yes` と答え、そうでないときこのチェックに対して `No` と答える必要がある。
サービス開始時には、どのユーザーも他のユーザーをフォローしていません。
すべての $ T\ _\ i=3 $ であるような操作に対して、$ i $ が小さいほうから順番に正しい答えを出力してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ Q $ $ T\ _\ 1 $ $ A\ _\ 1 $ $ B\ _\ 1 $ $ T\ _\ 2 $ $ A\ _\ 2 $ $ B\ _\ 2 $ $ \vdots $ $ T\ _\ Q $ $ A\ _\ Q $ $ B\ _\ Q $
Output Format
$ T\ _\ i=3 $ であるような $ i\ (1\leq\ i\leq\ Q) $ の個数を $ X $ として、$ X $ 行出力せよ。 $ j\ (1\leq\ j\leq\ X) $ 行目には $ j $ 番目の $ T\ _\ i=3 $ であるような操作に対する答えを出力せよ。
Explanation/Hint
### 制約
- $ 2\ \leq\ N\ \leq\ 10\ ^\ 9 $
- $ 1\ \leq\ Q\ \leq\ 2\times10\ ^\ 5 $
- $ T\ _\ i=1,2,3\ (1\leq\ i\leq\ Q) $
- $ 1\ \leq\ A\ _\ i\ \leq\ N\ (1\leq\ i\leq\ Q) $
- $ 1\ \leq\ B\ _\ i\ \leq\ N\ (1\leq\ i\leq\ Q) $
- $ A\ _\ i\neq\ B\ _\ i\ (1\leq\ i\leq\ Q) $
- $ T\ _\ i=3 $ となる $ i\ (1\leq\ i\leq\ Q) $ が存在する
- 入力される値はすべて整数
### Sample Explanation 1
Twidai には $ 3 $ 人のユーザーがいます。 $ 9 $ 回の操作はそれぞれ次のようになっています。 - ユーザー $ 1 $ がユーザー $ 2 $ をフォローします。そのほかにフォローしている/されているユーザーはいません。 - ユーザー $ 1 $ とユーザー $ 2 $ が互いにフォローしているかチェックします。ユーザー $ 1 $ はユーザー $ 2 $ をフォローしていますが、ユーザー $ 2 $ はユーザー $ 1 $ をフォローしていません。この操作への正しい答えは `No` です。 - ユーザー $ 2 $ がユーザー $ 1 $ をフォローします。 - ユーザー $ 1 $ とユーザー $ 2 $ が互いにフォローしているかチェックします。ユーザー $ 1 $ はユーザー $ 2 $ をフォローしており、ユーザー $ 2 $ はユーザー $ 1 $ をフォローしています。この操作への正しい答えは `Yes` です。 - ユーザー $ 2 $ がユーザー $ 3 $ をフォローします。 - ユーザー $ 3 $ がユーザー $ 2 $ をフォローします。 - ユーザー $ 1 $ とユーザー $ 3 $ が互いにフォローしているかチェックします。ユーザー $ 1 $ はユーザー $ 3 $ をフォローしておらず、ユーザー $ 3 $ もユーザー $ 1 $ をフォローしていません。この操作への正しい答えは `No` です。 - ユーザー $ 1 $ がユーザー $ 2 $ のフォローを解除します。 - ユーザー $ 1 $ とユーザー $ 2 $ が互いにフォローしているかチェックします。ユーザー $ 2 $ はユーザー $ 1 $ をフォローしていますが、ユーザー $ 1 $ はユーザー $ 2 $ をフォローしていません。この操作への正しい答えは `No` です。
### Sample Explanation 2
同じユーザーに対して何度もフォロー操作をする場合があります。