编程题
### 问题描述
给定一个初始包含 $n$ 个点,$0$ 条边的图。第 $i$ 个点的编号为 $i$。$(1\le i\le n)$
现在要进行 $m$ 次操作,操作共三种:
- `C a b`:在点 $a$ 与点 $b$ 之间连一条边,$a,b$ 可能相等。
- `Q1 a b`:询问点 $a$ 与点 $b$ 是否在一个连通块中,$a,b$ 可能相等。
- `Q2 a`:询问点 $a$ 所在连通块中点的数量。
### 输入格式
第一行输入两个正整数 $n,m$。$(1\le n,m\le 10^5)$
接下来 $m$ 行,每行输入包含一种操作。$(1\le a,b\le n)$
### 输出格式
对于查询 `Q1 a b`:若 $a,b$ 在一个连通块中,输出 `Yes`,否则输出 `No`。
对于查询 `Q2 a`:输出点 $a$ 所在连通块中点的数量。
### 样例输入
```text
5 7
C 1 2
Q1 1 2
Q2 1
C 2 5
Q2 5
Q1 1 1
Q1 2 3
```
### 样例输出
```text
Yes
2
3
Yes
No
```