#include <bits/stdc++.h>
#define MAX 10001
using namespace std;
int ata[MAX], n, q, a, b, c;

void build(){
    for(int i=0;MAX>i;i++){
        ata[i]=i;
    }
}

int find_set(int v){
    if(v==ata[v]){
        return v;
    }
    return ata[v]=find_set(ata[v]);
}

void union_set(int b, int c){
    b=find_set(b);  c=find_set(c);
    if(b!=c){
        ata[c]=b;
    }
}

int main(){
    ios::sync_with_stdio(false);    cin.tie(NULL);  cout.tie(NULL);
    build();    cin >> n >> q;
    for(int i=0;q>i;i++){
        cin >> a >> b >> c;
        if(a){
            cout << (find_set(b)!=find_set(c) ? 0 : 1) << "\n";     continue;
        }
        union_set(b, c);
    }
}
