#include <stdio.h>

#define NMAX 10000
#define NMAX1 (NMAX+1)
int n;
int group[NMAX1];

void init_group(void);
int unite(int x, int y);
int same(int x, int y);

int main(){
   int nq, iq, cmd, x, y;
   scanf("%d %d",&n,&nq);
   init_group();
   for(iq=0;iq<nq;iq++){
      scanf("%d %d %d",&cmd,&x,&y);
      switch(cmd){
      case 0 :
         unite(x,y);
         break;
      case 1 :
         same(x,y);
         break;
      }
   }
   return 0;
}

void init_group(void){
   int i;
   for(i=0;i<n;i++) group[i]=i;
}

int unite(int x, int y){
   int i, tmp, old_group, new_group;
   if( x > y ){ tmp=x; x=y; y=tmp; }
   new_group=group[x];
   old_group=group[y];
   for(i=0;i<n;i++){
      if(group[i]==old_group) group[i]=new_group;
   }
   return new_group;
}

int same(int x, int y){
   int flag;
   if(group[x]==group[y]) flag=1;
   else flag=0;
   printf("%d\n",flag);
   return flag;
}