#include<iostream>
using namespace std;
int n, m;
int root[1000];
int depth[1000];
int find(int);
void unite(int, int);
int main(){
while(cin >> n >> m){
for(int i = 0; i < n; i++){
root[i] = i;
depth[i] = 0;
}
while(m--){
char ch;
int a, b;
cin >> ch >> a >> b;
if(ch == 'U'){
unite(a - 1, b - 1);
}else{
cout << (find(a - 1) == find(b - 1) ? "Yes" : "No") << endl;
}
}
}
return 0;
}
int find(int x){
if(root[x] == x) return x;
else return root[x] = find(root[x]);
}
void unite(int a, int b){
a = find(a);
b = find(b);
if(a == b) return;
if(depth[a] < depth[b]) root[a] = b;
else{
root[b] = a;
if(depth[a] == depth[b]) depth[a]++;
}
}
//presented by 大吉大利,今晚AC