#include<stdio.h>
void cr(int S[100],int x,int y){//让y成为x的父结点
int i = x;
while(S[i] != i){
i = S[i];
}
S[i] = y;
}
void pd(int S[100],int x,int y){
int i = x;
int j = 1;
while(j == 1){
if(S[i] == y){
j=0;
}
if(S[i] == i){
break;
}
i = S[i];
}
if(j==0){
printf("Y\n");
}
if(j == 1){
printf("N\n");
}
}
int main(){
int S[100];
int n,m;
scanf("%d %d",&n,&m);
for(int i=0;i<100;i++){
S[i] = i;
}
for(int i=0;i<m;i++){
int z,x,y;
scanf("%d %d %d",&z,&x,&y);
if(z == 1){
cr(S,x,y);
}
if(z == 2){
pd(S,x,y);
}
}
return 0;
}