499. 合并集合 标准IO
时间限制:1000 MS 内存限制:64 MB    算法评级:    状态:

一共有 $n$ 个数,编号是 $1 \sim n$,最开始每个数各自在一个集合中。

现在要进行 $m$ 个操作,操作共有两种:

  1. "M a b",将编号为 $a$ 和 $b$ 的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作;
  2. "Q a b",询问编号为 $a$ 和 $b$ 的两个数是否在同一个集合中;

输入格式

第一行输入整数 $n$ 和 $m$。

接下来 $m$ 行,每行包含一个操作指令,指令为 "M a b" 或 "Q a b" 中的一种。


输出格式

对于每个询问指令 "Q a b",都要输出一个结果,如果 $a$ 和 $b$ 在同一集合内,则输出 Yes,否则输出 No

每个结果占一行。


数据范围

$1 \le n,m \le 10^5$


样例输入

4 5
M 1 2
M 3 4
Q 1 2
Q 1 3
Q 3 4

样例输出

Yes
No
Yes

提示

代码运行状态:

输出