/*
   TASK: y1984
   LANG: C++
*/


#include<iostream>
using namespace std;

#define MAXN 1024

int A[MAXN][MAXN], m, n, i, j, q, a, b, x, y, k;


int main(){

 cin>>n>>m;

 for(i=0; i<n; i++)
    for(j=0; j<n; j++)
       A[i][j]=-1;

 for(i=0; i<m; i++)
    {cin>>a>>b;
     cin>>A[a][b];
     A[b][a]=A[a][b];
    }

 for(k=0; k<n; k++)
    for(i=0; i<n; i++)
       for(j=0; j<n; j++)
          if( (A[i][j]==-1) && (A[i][k]!=-1) && (A[k][j]!=-1) )
                A[i][j]=A[i][k]+A[k][j];

 cin>>q;

 for(i=0; i<q; i++)
    {cin>>x>>y;
     if(A[x][y]!=-1) cout<<A[x][y]%2<<endl;
     else cout<<2<<endl;}

 return 0;
}

