#abc278c. [abc278_c]FF

[abc278_c]FF

問題文

高橋君が運営する SNS「Twidai」にはユーザー 11 からユーザー NN までの NN 人のユーザーがいます。 Twidai では、ユーザーは別のユーザーをフォローすることや、フォローを解除することができます。

Twidai がサービスを開始してから、QQ 回の操作が行われました。 ii 回目 (1leqileqQ)(1\\leq i\\leq Q) の操作は 33 つの整数 Ti,Ai,BiT _ i, A _ i, B _ i で表され、それぞれ次のような操作を表します。

  • Ti=1T _ i=1 のとき:ユーザー AiA _ i がユーザー BiB _ i をフォローしたことを表す。この操作の時点でユーザー AiA _ i がユーザー BiB _ i をフォローしている場合、ユーザーのフォロー状況に変化はない。
  • Ti=2T _ i=2 のとき:ユーザー AiA _ i がユーザー BiB _ i のフォローを解除したことを表す。この操作の時点でユーザー AiA _ i がユーザー BiB _ i をフォローしていない場合、ユーザーのフォロー状況に変化はない。
  • Ti=3T _ i=3 のとき:ユーザー AiA _ i とユーザー BiB _ i が互いにフォローしているかをチェックすることを表す。この操作の時点でユーザー AiA _ i がユーザー BiB _ i をフォローしており、かつユーザー BiB _ i がユーザー AiA _ i をフォローしているとき、このチェックに対して Yes と答え、そうでないときこのチェックに対して No と答える必要がある。

サービス開始時には、どのユーザーも他のユーザーをフォローしていません。

すべての Ti=3T _ i=3 であるような操作に対して、ii が小さいほうから順番に正しい答えを出力してください。

制約

  • 2leqNleq1092 \\leq N \\leq 10 ^ 9
  • 1leqQleq2times1051 \\leq Q \\leq 2\\times10 ^ 5
  • Ti=1,2,3(1leqileqQ)T _ i=1,2,3\\ (1\\leq i\\leq Q)
  • 1leqAileqN(1leqileqQ)1 \\leq A _ i \\leq N\\ (1\\leq i\\leq Q)
  • 1leqBileqN(1leqileqQ)1 \\leq B _ i \\leq N\\ (1\\leq i\\leq Q)
  • AineqBi(1leqileqQ)A _ i\\neq B _ i\\ (1\\leq i\\leq Q)
  • Ti=3T _ i=3 となる i(1leqileqQ)i\\ (1\\leq i\\leq Q) が存在する
  • 入力される値はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

NN QQ T1T _ 1 A1A _ 1 B1B _ 1 T2T _ 2 A2A _ 2 B2B _ 2 vdots\\vdots TQT _ Q AQA _ Q BQB _ Q

出力

Ti=3T _ i=3 であるような i(1leqileqQ)i\\ (1\\leq i\\leq Q) の個数を XX として、XX 行出力せよ。 j(1leqjleqX)j\\ (1\\leq j\\leq X) 行目には jj 番目の Ti=3T _ i=3 であるような操作に対する答えを出力せよ。


入力例 1

3 9
1 1 2
3 1 2
1 2 1
3 1 2
1 2 3
1 3 2
3 1 3
2 1 2
3 1 2

出力例 1

No
Yes
No
No

Twidai には 33 人のユーザーがいます。 99 回の操作はそれぞれ次のようになっています。

  • ユーザー 11 がユーザー 22 をフォローします。そのほかにフォローしている/されているユーザーはいません。
  • ユーザー 11 とユーザー 22 が互いにフォローしているかチェックします。ユーザー 11 はユーザー 22 をフォローしていますが、ユーザー 22 はユーザー 11 をフォローしていません。この操作への正しい答えは No です。
  • ユーザー 22 がユーザー 11 をフォローします。
  • ユーザー 11 とユーザー 22 が互いにフォローしているかチェックします。ユーザー 11 はユーザー 22 をフォローしており、ユーザー 22 はユーザー 11 をフォローしています。この操作への正しい答えは Yes です。
  • ユーザー 22 がユーザー 33 をフォローします。
  • ユーザー 33 がユーザー 22 をフォローします。
  • ユーザー 11 とユーザー 33 が互いにフォローしているかチェックします。ユーザー 11 はユーザー 33 をフォローしておらず、ユーザー 33 もユーザー 11 をフォローしていません。この操作への正しい答えは No です。
  • ユーザー 11 がユーザー 22 のフォローを解除します。
  • ユーザー 11 とユーザー 22 が互いにフォローしているかチェックします。ユーザー 22 はユーザー 11 をフォローしていますが、ユーザー 11 はユーザー 22 をフォローしていません。この操作への正しい答えは No です。

入力例 2

2 8
1 1 2
1 2 1
3 1 2
1 1 2
1 1 2
1 1 2
2 1 2
3 1 2

出力例 2

Yes
No

同じユーザーに対して何度もフォロー操作をする場合があります。


入力例 3

10 30
3 1 6
3 5 4
1 6 1
3 1 7
3 8 4
1 1 6
2 4 3
1 6 5
1 5 6
1 1 8
1 8 1
2 3 10
1 7 6
3 5 6
1 6 7
3 6 7
1 9 5
3 8 6
3 3 8
2 6 9
1 7 1
3 10 8
2 9 2
1 10 9
2 6 10
2 6 8
3 1 6
3 1 8
2 8 5
1 9 10

出力例 3

No
No
No
No
Yes
Yes
No
No
No
Yes
Yes