/*
TASK:Y1984
LANG:C++
*/
//#include<stdio.h>
#include<iostream>
using namespace std;

int n,m,q,tmp1,tmp2;
int a[10][10];
int used[10],queue[10],d[10];
int aq[10][2];
int t;

void init(){
  int i;
  cin>>n;
  cin>>m;
  for(i=1;i<=m;i++){
   cin>>tmp1>>tmp2>>t;//scanf("%d %d %c",&tmp1,&tmp2,&t);
   if(t==0){a[tmp1][tmp2]=1;a[tmp2][tmp1]=1;}
   else {a[tmp1][tmp2]=-1;a[tmp2][tmp1]=-1;}
  }
  cin>>q;
  for(i=1;i<=q;i++)cin>>aq[i][1]>>aq[i][2];
}

int solve(int l,int r){

  used[l]=1;queue[0]=0;
  queue[++queue[0]]=l;
  int temp=1,i;

  for(i=0;i<n;i++)d[i]=a[l][i];

  while(temp!=queue[0]+1){
    for(i=0;i<n;i++)
      if(a[queue[temp]][i]!=0 && !used[i]){
        queue[++queue[0]]=i;
        if(a[queue[temp]][i]==-1)d[i]=-d[queue[temp]];
        if(a[queue[temp]][i]==1)d[i]=d[queue[temp]];
        if(i==r)break;
      }
    temp++;
  }
  return d[r];
}

int main(){
 init();
 int i;
 for(i=1;i<=q;i++){
  int p=solve(aq[i][1],aq[i][2]);
  if(p==-1)cout<<1<<endl;
  if(p==1)cout<<0<<endl;
  if(p==0)cout<<2<<endl;
 }
//int i,j;
for(i=0;i<n;i++)cout<<queue[i]<<"  ";
//for(i=0;i<n;i++)cout<<aq[i][1]<<" "<<aq[i][2]<<endl;//printf("%d %d\n",aq[i][1],aq[i][2]);

return 0;
}

