#include<bits/stdc++.h>
using namespace std;
int pre[10010];
void init(int x){
for(int i = 1; i <= x; i ++)
pre[i] = i;
}
int getroot(int x){
if(x == pre[x])
return x;
return pre[x] = getroot(pre[x]);
}
void Union(int a, int b){
int u1,u2;
u1 = getroot(a);
u2 = getroot(b);
if(u1 == u2)
return;
else if(u1 < u2)
pre[u1] = u2;
else
pre[u2] = u1;
return;
}
int main(){
int n,m,a,b,c;
cin >> n >> m;
init(n);
while(m--){
cin >> a >> b >> c;
if(a == 1){
Union(b,c);//合并
}
else{
if(getroot(b) == getroot(c))//判断是否为同一集合
cout << "Y" << endl;
else
cout << "N" << endl;
}
}
}