/*
TASK:y1984
LANG:C++
*/
#include<iostream>
#define mn 1050
using namespace std;
int n,m,q,a[mn][mn];
void vrag (int x,int y)
{int i,j,s[mn],p[mn],v[mn],f=0,l=0;
 if(a[x][y]==1){cout<<'0'<<endl;return;}
 else if(a[x][y]==2){cout<<'1'<<endl;return;}
  for(i=1;i<=n;i++)
   {s[i]=0;
    v[i]=0;
   }
 v[x]=1;
 s[f]=x;
 while(f>=l)
  {j=s[l++];
   for(i=1;i<=n;i++)
     if(a[j][i]&&!v[i])
      if(a[j][i]==v[j])
       {s[++f]=i;v[i]=1;}
      else
       {s[++f]=i;v[i]=2;}
   if(v[y])break;
  }
 if(v[y]==0)cout<<'2'<<endl;
 else if(v[y]==1)cout<<'0'<<endl;
 else cout<<'1'<<endl;
}
void vhod()
{int i,j,x,y;
 cin>>n>>m;
 for(i=1;i<=m;i++)
  {cin>>x>>y>>j;
   if(!j)a[x][y]=a[y][x]=1;
    else a[x][y]=a[y][x]=2;
  }
 cin>>q;
 for(i=1;i<=q;i++)
  {cin>>x>>y;
   vrag(x,y);
  }
}
int main()
{vhod();
 return 0;
}
