/*
 TASK:Y1984
 LANG:C++
*/
#include<stdio.h>
int m,n,q,i,j=0;
int conv[1024][3];
int ans[100],t[1024][2];
void inp(void)
 { int i;
   scanf("%d",&n);
   scanf("%d",&m);
   for (i=0;i<m;i++) scanf("%d%d%d",&conv[i][0],&conv[i][1],&conv[i][2]);
   scanf("%d",&q);
 }
int sr(int h)
 { int i;
   for (i=0;i<=j;i++) if (t[i][1]==h) return 0;
   return 1;
 }
int comp(int a,int b)
 { if ((a==1)&&(b==1)) return 0;
   if ((a==0)&&(b==0)) return 0;
   if ((a==2)||(b==2)) return 2;
   return 1;
 }
int find(int a,int b)
 { int i=-1,p;
   t[i][0]=a;
   t[i][1]=0;
   do
    { for (p=0;p<m;p++)
       { i++;
	 if ((conv[p][0]==t[i][0])&&(sr(conv[p][1]))) { t[++j][0]=conv[p][1];
							t[j][1]=comp(t[i][1],conv[p][2]);
						      }
	 if ((conv[p][1]==t[i][0])&&(sr(conv[p][0]))) { t[++j][0]=conv[p][0];
							t[j][1]=comp(t[i][1],conv[p][2]);
						      }
       }
      //i++;
    } while (i<j);
   for (i=0;i<=j;i++) if (t[i][0]==b) return t[i][1];
   return 2;
 }
void main(void)
 { int a,b;
   inp();
   for (i=1;i<=q;i++)
    { scanf("%d%d",&a,&b);
      ans[i]=find(a,b);
    }
   printf("%d\n",ans[1]);
 }
 //n,m<1024
 //q<100