/*
TASK: B2
LANG: C++
*/
#include<iostream>
#include<cmath>
using namespace std;

int ag[1024][1024],N,M,ok=1;

void check(int i,int j){
	int k;
	for(k=0;k<N;k++){
	if(k==i||j==k||ag[j][k]==2||ag[i][k]!=2)continue;
		if(ag[i][j]==1){ag[i][k]=abs(ag[j][k]-1);ag[k][i]=ag[i][k];}	
		else if(ag[i][j]==0){ag[i][k]=ag[j][k];ag[k][i]=ag[i][k];}
		ok=1;
	}
}


int main(){
	int i,j,x,y,r,q;
	//ifstream fin("y1984.in");
	cin>>N>>M;				//fin>>N>>M;
	for(i=0;i<N;i++)
		for(j=0;j<N;j++){
			if(i==j)ag[i][i]=0;
			else ag[i][j]=2;
		}
	for(i=0;i<M;i++){
		cin>>x>>y>>r;		//fin>>x>>y>>r;
		ag[x][y]=r;
		ag[y][x]=r;
	}
	
	while(ok==1){ok=0;
	for(i=0;i<N;i++)
		for(j=0;j<N;j++){
			if(i==j)continue;
			if(ag[i][j]!=2)check(i,j);

		}
	}
		
	/*for(i=0;i<N;i++){
						for(j=0;j<N;j++)cout<<ag[i][j]<<" ";
						cout<<endl;
						}
	*/	
	cin>>q;					//fin>>q;
	for(i=0;i<q;i++){
	cin>>x>>y;				//fin>>x>>y;
	cout<<ag[x][y]<<endl;
	}
	return 0;
}


