#include <iostream>
using namespace std;
const int N = 100010;
int n, m;
int p[N], size[N];
int find(int x) {
if (p[x] != x) p[x] = find(p[x]);
return p[x];
}
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i ++ ) {
p[i] = i;
size[i] = 1;
}
while (m -- ) {
string op;
int a,b;
cin>>op;
if(op=="C") {
cin>>a>>b;
if(find(a)==find(b)) continue;
size[find(b)]+=size[find(a)];
p[find(a)]=find(b);
}else if(op=="Q1"){
cin>>a>>b;
if(find(a)==find(b)) puts("Yes");
else puts("No");
} else {
cin>>a;
cout<<size[find(a)]<<endl;
}
}
return 0;
}