#include <iostream>
using namespace std;
const int N = 100000+10;
int p[N]; //定义多个集合
//查询函数:
int find(int x)
{
if(x == p[x]) return x;
else p[x] = find(p[x]);
return p[x];
}
int main()
{
int n = 0, m = 0;
scanf("%d%d", &n, &m);
//初始化,每个集合里卖弄只有元素,且每个元素指向自己
for(int i = 1; i <= n; i++) p[i] = i;
while (m--)
{
char op[2];
int a, b; //操作数
scanf("%s%d%d",op, &n, &m);
if(op[0] == 'M') p[find(a)] = find(b);
else
{
if(find(a) == find(b)) printf("YES\n");
else printf("NO\n");
}
}
return 0;
}