#include <iostream>
#include <stdio.h>
using namespace std;
int parent[1000001], n,m,depth[1000001];
int init(){
for(int i=1;i<=n;i++)
parent[i]=i;
}
int find(int a){
if(parent[a]==a)
return a;
return parent[a]=find(parent[a]);//중요 경로압축!!
}
void merge(int a, int b){
int u=find(a),v=find(b);
if(u==v)
return;
if(depth[u]>depth[v])
swap(u, v);
parent[u]=v;
if(depth[u]==depth[v])
depth[v]++;
}
int main()
{
scanf("%d%d",&n,&m);
init();
for(int i=0;i<m;i++){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a==0)
merge(b,c);
else{
if(find(b)==find(c))
printf("YES\n");
else
printf("NO\n");
}
}
return 0;
}