{
TASK: Y1984
LANG: PASCAL
}
var
i,j,n,m,q:integer;
a:array[0..1024,0..1024]of byte;

procedure getinfo;
var
x,y,z:byte;
begin
readln(n);
for i:=0 to n-1 do
    for j:=0 to n-1 do
        a[i,j]:=3;
readln(m);
for i:=1 to m do
    begin
    readln(x,y,z);
    a[x,y]:=z;
    a[y,x]:=z;
    end;
readln(q);

end;

procedure answer;
var t,x,y:integer;
begin
for t:=1 to q do
    begin
    readln(x,y);
    for i:=1 to n do
        if a[x,y]<>3
        then begin writeln(a[x,y]);break;end
        else
        if a[x,i]<>3
           then for j:=1 to n do
                    if a[i,j]<>3
                       then a[x,j]:=(a[i,j]+a[x,i])mod 2;
    end;


end;

begin
getinfo;
answer;
end.
