/*
TASK:Y1984
LANG:C++
*/
#include <iostream.h>


int main()
{
 int s[1024],known[1024],n,m,a,b,r,x,y,i,j,count=0,q;




 cin>>n>>m;
 for(i=0;i<n;i++) { s[i]=-1; known[i]=0; }
 for(i=0;i<m;i++) {
	cin>>a>>b>>r;
	if(!r) {
		if(known[a]) {
			if(s[b]!=-1) {
			for(j=0;j<n;j++)
			 if(s[j]==s[b] && j!=b)
			 { s[j]=s[a]; known[j]=1; }
			s[b]=s[a]; } else s[b]=s[a];
			known[b]=1; continue; }
		if(known[b]) {
			if(s[a]!=-1) {
			for(j=0;j<n;j++)
			 if(s[j]==s[a] && j!=a)
			 { s[j]=s[b]; known[j]=1; }
			s[a]=s[b]; } else s[a]=s[b];
			known[a]=1; continue; }
		s[a]=s[b]=count++;
		known[a]=known[b]=1;
	}
	if(r)  {
		if(!known[a] && !known[b]) { s[a]=count++; s[b]=count++;
			known[a]=known[b]=1;	continue; }
		if(known[a] && !known[b]) { /*s[b]=count++;*/
		     for(j=0;j<n;j++) {
			if(s[j]!=s[a] && s[j]!=-1)
			{ s[b]=s[j]; known[b]=1; } } }
		if(!known[a] && known[b]) { /*s[a]=count++;*/
		     for(j=0;j<n;j++) {
			if(s[j]!=s[b] && s[j]!=-1)
			{ s[a]=s[j]; known[a]=1; } } }
	}
 }

 /*for(i=0;i<n;i++) cout<<s[i]<<" ";
 cout<<"\n";
 for(i=0;i<n;i++) cout<<known[i]<<" ";*/

 cin>>q;
 for(i=0;i<q;i++) {
	cin>>a>>b;
	cout<<"\n";
	if(s[a]==-1 || s[b]==-1) { cout<<"2"; continue; }
	if(s[a]==s[b]) cout<<"0";
	if(s[a]!=s[b]) cout<<"1";
	}
 return 0;

 }




