#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;
}