#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
typedef pair<int, int> pii;

const int MAX=1e6+3;
int n, q, start, target;
bool naso=0;
bool v[MAX];
vector<int> g[MAX];


void dfs(int node){
    v[node]=1;
    if(node==target) naso=1;
    if(naso) return;
    for(auto x : g[node]){
        if(!v[x]) dfs(x);
    }
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);

    cin >> n >> q;
    while(q--){
        int t; cin >> t;
        if(t==1){
            char c; int a, b; cin >> a >> b >> c; a--; b--;
            g[a].push_back(b);
            g[b].push_back(a);
        }
        if(t==2){
            cin >> start >> target; start--; target--;
            naso=0;
            for(int i=0;i<n;++i) v[i]=0;
            dfs(start);
            if(naso) cout << "1\n";
            else cout << "0\n";
        }
    }


    return 0;
}