#include <stdio.h>
#include <stdbool.h>
typedef long long ll;
#define rep(i,n) for(ll i=0; i<(ll)(n); i++)

int par[101010];

void UnionFind(int N){
    for(int i = 0; i < N; i++) par[i] = i;
}

int root(int x) { 
    if (par[x] == x) return x;
    return par[x] = root(par[x]);
}

void unite(int x, int y) {
    int rx = root(x); 
    int ry = root(y);
    if (rx == ry) return;
    par[rx] = ry; 
}

bool same(int x, int y) {
    int rx = root(x);
    int ry = root(y);
    return rx == ry;
}


int main(){
    int n, q;
    scanf("%d%d", &n, &q);
    UnionFind(n);

    rep(i, q) {
        int com, x, y;
        scanf("%d%d%d", &com, &x, &y);
        if(com == 0) unite(x, y);
        else {
            if(same(x, y)) puts("1");
            else puts("0");
        }
    }
}


