兔子喜欢挖洞并建造地下通道。包括它自己在内,共有 $N$ 只兔子,编号为 $0$ 到 $N-1$。共有 $N$ 个小屋,编号为 $0$ 到 $N-1$,兔子 $x$ 住在小屋 $x$ 中。
有一天,它们听说有人要建造一些地下通道。通过这些建造,兔子们将能够通过这些通道前往其他兔子的住所,它们会为此感到高兴。
由于某些原因,已建成的通道可能会被摧毁。建造或摧毁操作将逐一进行,在每次建造或摧毁期间,每只兔子都待在自己的房间里。
兔子们想知道在建造过程的某些阶段,某些兔子对是否可以通过地下通道相遇。注意,所有通道都是双向的,且所有兔子都非常友好,它们可以自由地穿过其他兔子的住所。请编写一个程序,处理有关通道建造或摧毁以及兔子询问的信息。
输入格式
输入按以下格式给出:
$N \ K$ $T_1 \ A_1 \ B_1$ $\vdots$ $T_K \ A_K \ B_K$
第一行包含两个整数 $N$ 和 $K$ ($2 \le N \le 40\,000, 1 \le K \le 40\,000$)。接下来的 $K$ 行包含建造或摧毁的信息以及兔子的询问,按操作发生的顺序排列。其中第 $i$ 行包含三个整数 $T_i, A_i$ 和 $B_i$ ($1 \le T_i \le 3, 0 \le A_i < B_i \le N - 1$)。
- 如果 $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$ 能否通过地下通道相遇?
输出格式
对于每个 $T_i = 3$ 的询问,你的程序应输出一行。如果兔子 $A_i$ 和兔子 $B_i$ 在该时刻可以相遇,则输出 YES,否则输出 NO。
样例
输入 1
4 10 1 0 1 1 0 2 3 1 2 2 0 1 1 2 3 3 0 1 1 0 1 2 0 2 1 1 3 3 0 2
输出 1
YES NO YES