#include <iostream>
#include <fstream>
using namespace std;
int n,m,n_add,add[100001],sv_sc[100001],sv[10001][10001],t,x,y;
//int ok=1;
int main()

{
ifstream f("fis.in");
cin>>n>>m;
  //  cin>>c1>>c2;
    for(int i=1;i<=n;i++){
        sv_sc[i]=1;
        sv[i][1]=i;
        }
   for(int i=1;i<=m;i++){
        cin>>t;


        if(t==1)
            {   cin>>x>>y;
                if(y<x){
                    int aux=y;
                    y=x;
                    x=aux;
                }
                n_add++;
                add[n_add]=y;

                for(int j=1;j<=n;j++)
                    if(sv[j][sv_sc[j]]==sv[y][sv_sc[y]]){
                        sv_sc[j]++;
                        sv[j][sv_sc[j]]= sv[x][sv_sc[x]];
                    }

            }else if(t==3){
                cin>>x>>y;

                if(sv[x][sv_sc[x]]==sv[y][sv_sc[y]])
                    cout<<1<<endl;
                else cout<<0<<endl;
            }else if(t==2){
                cin>>x;while(x>0){
                int j=add[n_add];
                sv_sc[j]--;
                int a=sv[j][sv_sc[j]];
                for(int j1=1;j1<=n;j1++)
                    if(sv[j1][sv_sc[j1]-1]==a){
                        sv_sc[j1]--;

                    }x--;
                    n_add--;
                    }
            }

   }

    return 0;
}