/*
TASK:Y1984
LANG:C++
*/
#include<iostream.h>
 int n,m,q;
 short **A,fr;
 char used[1024];
 void dsf(int i, int j, short f);
 int main()
 {
  int i,j,a,b;
  short Q[100],c;
  cin>>n>>m;
  A=new short *[n];
  for(i=0;i<n;i++)A[i]=new short [n];
  for(i=0;i<n;i++)
   for(j=0;j<n;j++)A[i][j]=2;
  for(i=0;i<m;i++)
   {
    cin>>a>>b>>c;
    A[b][a]=A[a][b]=c;
   }
  cin>>q;
  for(i=0;i<q;i++)
  {
   cin>>a>>b;
   for(j=0;j<n;j++)used[j]=0;
   fr=2;
   dsf(a,b,0); Q[i]=fr;
  }
  for(i=0;i<q;i++)cout<<Q[i]<<endl;
  return 0;
 }

 void dsf(int i, int j, short f)
 {
  if(i==j){fr=f; return;}
  else {
   used[i]=1;
   for(int k=0;k<n;k++)
    if(!used[k]){
    if(A[i][k]==0)dsf(k,j,f);
     else if(A[i][k]==1)dsf(k,j,(f)?0:1);
    }
  }
 }