#include <bits/stdc++.h>

using namespace std;
bool jepalindrom(char a[],int u,int v)
{
    if(u==v)
        return true;
    else if(v==u+1)
    {
        if(a[u-1]!='0')
            return true;
        else return false;
    }
    else
    {
        if(a[u-1]==a[v-2] and a[u-1]!='0')
            return jepalindrom(a,u+1,v-1);
        else
            return false;
    }
}
int main()
{
    cin.tie(0);
    cout.tie(0);
    int n,q,t,u,v;
    cin>>n>>q;
    char c,a[n-1];
    for(int i=0;i<n-1;i++)
        a[i]='0';
    while(q--)
    {
        cin>>t;
        if(t==1)
        {
            cin>>u>>v>>c;
            a[min(u,v)-1]=c;
        }
        if(t==2)
        {
            cin>>u>>v;
            if(jepalindrom(a,u,v))
                cout<<1<<endl;
            else
                cout<<0<<endl;
        }
    }
}