/*
ID: vn_b2
TASK: y1984
LANG: C
*/
#include <stdio.h>
#define MAXN 1200

int n,m;
int q; //broi vyprosi
int pri[MAXN][MAXN]; //kraini priqteli(matrica na sysedstvo)
int vr[MAXN][MAXN]; //kraini vragove(matrica na sysedstvo)
/*
void dfs(int i,int t)
{
  used[i]=0;
  if(t%2)
  if(t%2==0) {  //tyrsim vsi4ki vragove na priqtelite mu
        t++;
        for(j=1;j<=fr[i][0];j++) dfs(fr);

  }
  else {
  }
}
*/
/*
void dfs1(int i,int k)
{ int j;

  usedf[i]=1;
  pri[i][k]=1;
  pri[k][i]=1;
  for(j=1;j<=fr[i][0];j++) {
    if(!usedf[fr[i][j]]) dfs1(fr[i][j],i);
  }
}

void dfs2(int i,int k)
{ int j;

  useden[i]=1;
  vr[i][k]=1;
  vr[k][i]=1;
  for(j=1;j<=en[i][0];j++) {
    if(!useden[en[i][j]]) dfs1(en[i][j],i);
  }
}
*/
int main()
{ int i,r,a,b,j;

  freopen("proba1.in","r",stdin);
  freopen("proba1.out","w",stdout);
  scanf("%d",&n); scanf("%d",&m);
  for(i=0;i<m;i++) {
    scanf("%d %d %d",&a,&b,&r);
    if(r==0) {

      pri[a][b]=1;
      pri[b][a]=1;
      //vsi4ki vragove na a stavat vragove na b
      for(j=0;j<n;j++) {
        if(j!=a && vr[a][j]) {
          vr[j][b]=1;
          vr[b][j]=1;
        }
      }
      //vsi4ki priqteli na a stavat priqteli na b
      for(j=0;j<n;j++) {
        if(j!=a && pri[a][j]) {
          pri[j][b]=1;
          pri[b][j]=1;
        }
      }
    }
    else {
      vr[a][b]=1;
      vr[b][a]=1;
      //vsi4ki vragove na a stavat priqteli na b
      for(j=0;j<n;j++) {
        if(j!=a && vr[a][j]) {
          pri[j][b]=1;
          pri[b][j]=1;
        }
      }
      //vsiki priqteli na a stavat vragove na b
      for(j=0;j<n;j++) {
        if(j!=a && pri[a][j]) {
          vr[j][b]=1;
          vr[b][j]=1;
        }
      }

    }
    
  }
/*
  for(i=0;i<n;i++) {
   for(j=0;j<n;j++) {
    printf("%d ",pri[i][j]);
  }
  printf("\n");
 }
  printf("alsdkj\n");
  for(i=0;i<n;i++) {
   for(j=1;j<n;j++) {
    printf("%d ",vr[i][j]);
  }
  printf("\n");
 }
*/
/*
  for(i=0;i<n;i++) {
    if(!usedf[i]) dfs1(i,i);
  }

  for(i=0;i<n;i++) {
    if(!useden[i]) dfs2(i,i);
  }
  */
  scanf("%d",&q);
  for(i=0;i<q;i++) {
    scanf("%d %d",&a,&b);
    if(pri[a][b]==1) printf("0\n");
    else if(vr[a][b]==1) printf("1\n");
    else printf("2\n");
  }
return 0;
}

