program y1984;
type b1=array[1..100,1..100]of byte;
var a: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);
label 1;
var ap:b1;
    begin
    if r=0 then ap:=a;
    r:=1;
    for i:=1 to n do
        begin
         if ap[v0,i]<>2 then
           begin
            if (ap[v0,i]=1)and(all=2) then all:=1
            else if (ap[v0,i]=0)and(all=2) then all:=0
            else if (ap[v0,i]=1)and(all=0) then all:=1
            else if (ap[v0,i]=0)and(all=1) then all:=1
            else all:=ap[v0,i];
            if (i=v1)and(all<>2) then begin writeln(all);goto 1;end;
            lan(i,v1,all);
            1:
           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 i:=1 to w do
    begin
    lan(b[i,1],b[1,2],2); r:=0; end;


end.












