#433. 互关

互关

问题描述

小k运营着一个名为“^V^”的社交网络服务(SNS),该服务有NN个用户,编号从用户11到用户NN

在^V^中,用户可以关注或取消关注其他用户。 自^V^上线以来,已经进行了QQ次操作。

ii次(1iQ1 \leq i \leq Q)操作由三个整数TiT_iAiA_iBiB_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。 在服务刚上线时,没有任何用户关注其他用户。 请按ii的升序输出所有Ti=3T_i = 3的操作的正确结果。

约束条件

  • 2N1092 \leq N \leq 10^9
  • 1Q2×1051 \leq Q \leq 2 \times 10^5
  • Ti=1,2,3T_i = 1, 2, 31iQ1 \leq i \leq Q
  • 1AiN1 \leq A_i \leq N1iQ1 \leq i \leq Q
  • 1BiN1 \leq B_i \leq N1iQ1 \leq i \leq Q
  • AiBiA_i \neq B_i1iQ1 \leq i \leq Q
  • 存在ii1iQ1 \leq i \leq Q)使得Ti=3T_i = 3
  • 输入中的所有值均为整数。

输入

输入从标准输入按以下格式给出:

N Q
T_1 A_1 B_1
T_2 A_2 B_2
...
T_Q A_Q B_Q

输出

输出XX行,其中XX是满足Ti=3T_i = 3ii1iQ1 \leq i \leq Q)的数量。

jj行(1jX1 \leq j \leq X)应包含对第jjTi=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

^V^有三个用户。

九次操作如下:

  • 用户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