#include <bits/stdc++.h>
#define mp make_pair
#define pb push_back
#define st first
#define nd second
using namespace std;
typedef pair<int,int> ii;
vector <int> dsu(1005,-1);
int  Find(int a){return (dsu[a]<0)?a:dsu[a]=Find(dsu[a]);}
void Join(int a,int b){
    a=Find(a);b=Find(b);
    if(a==b)return;
    else{
        if(a>b)swap(a,b);
        dsu[b]+=dsu[a];dsu[a]=b;
    }
}
int main(){
	ios_base::sync_with_stdio(false);
    freopen("no112b.inp","r",stdin);
    freopen("no112b.out","w",stdout);
	int n,m;scanf("%d%d",&n,&m);
	for(int i=0;i<m;i++){
        int u,v;scanf("%d%d",&u,&v);
        Join(u,v);
	}
	int q;scanf("%d",&q);
	while(q--){
        int t,u,v;
        scanf("%d%d%d",&t,&u,&v);
        if(t==1){
            if(Find(u)==Find(v))printf("1");
            else printf("0");
        }
        else{
            Join(u,v);
        }
	}
}
