#include<stdio.h>

void same(int*, int*, int*);
void unite(int*, int*, int*, int*);

int main(void) {
    int i, j;
    int n, q, com, x, y;
    scanf("%d%d", &n, &q);
    int map[n];
    
    for(i=0; i<n; i++) map[i] = i;
    
    for(i=0; i<q; i++) {
        scanf("%d%d%d", &com, &x, &y);
        
        if(com == 1) {
            same(map, &x, &y);
        } else {
            unite(&n, map, &x, &y);
        }
    }
    return 0;
}

void same(int *map, int *x, int*y) {
    if(map[*x] == map[*y]) printf("1\n");
    else printf("0\n");
}

void unite(int *n, int *map, int *x, int *y) {
    int i;
    int target = map[*y];
    for(i=0; i<*n; i++) {
        if(map[i]==target) map[i] = map[*x];
    }
}