{
TASK:Y1984
LANG:PASCAL
}
program y1984;
type b1=array[1..100,1..100]of byte;
var a:b1;
    a1:b1;
    b:array[1..100,1..2]of word;
    q:boolean;
    r,n,m,i,j,x,y,e,w:integer;
procedure lan(v0:byte;v1:byte;all:byte);
    begin
    r:=r+1;
    for i:=1 to n do
        begin
         if a[v0,i]<>2 then
           begin
            if (a[v0,i]=1)and(all=2) then all:=1
            else if (a[v0,i]=0)and(all=2) then all:=0
            else if (a[v0,i]=1)and(all=0) then all:=0
            else if (a[v0,i]=0)and(all=1) then all:=0
            else all:=a[v0,i];
            if ((i=v1)and(all<>2))or(r>999) then begin writeln(all); i:=n; end
            else
            begin
              a[v0,i]:=2;
              a[i,v0]:=2;
              lan(i,v1,all);
            end;
           end;
        end;
end;




begin
readln(n);
readln(m);
for i:=1 to n do
for j:=1 to n do a[i,j]:=2;
for i:=1 to m do
    begin
     readln(x,y,e);
     a[x,y]:=e;
     a[y,x]:=e;
    end;
readln(w);
for i:=1 to w do readln(b[i,1],b[i,2]);


{izvejdane}
{
for i:=1 to n do begin
for j:=1 to n do write(a[i,j],' '); writeln;
end;
}
for j:=1 to w do
    begin
    a1:=a;
    r:=0;lan(b[j,1],b[j,2],2); a:=a1;end;


end.












