#include <bits/stdc++.h>

using namespace std;

int n;

int dsu[1005],par[1005];
int rod(int a)
{
    if(par[a]==a) return a;
    else return (par[a]=rod(a));
}
void spoj(int a,int b)
{
    a=rod(a);
    b=rod(b);
    if(a==b) return;
    if(dsu[a]>dsu[b]) swap(a,b);
    dsu[b]+=dsu[a];
    dsu[a]=dsu[b];
    par[a]=b;
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    int n,q;
    cin>>n>>q;
    for(int i=0;i<n;i++)
    {
        par[i]=i;
        dsu[i]=1;
    }
    vector<vector<pair<int,char>>> adj(n+5);
    while(q--)
    {
        bool prvi=true,drugi=true;
        int t,a,b;
        char c;
        cin>>t>>a>>b;
        if(t==1)
        {
            cin>>c;
            if(c!='a') prvi=false;
            if(b!=a+1) drugi=false;
            adj[a].push_back({b,c});
            adj[b].push_back({a,c});
            spoj(a,b);
        }
        else
        {
            if(prvi)
            {
                if(rod(a)==rod(b)) cout<<"1"<<endl;
                else cout<<"0"<<endl;
            }
        }
    }
    return 0;
}