#include<stdio.h>

void same_check(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];
}

int main(){
    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){
            same_check(map, &x, &y);
        }else{
            unite(&n, map, &x, &y);
        }
    }

    return 0;
}
