{
TASK:y1984
LANG:PASCAL
}

type
masiv=array[1..1024,1..3]of byte;
var
q,m,t,d,val,n,i:integer;
agent:array[1..1024]of byte;
conv:masiv;
quest:array[1..100,1..2]of byte;
procedure find(m,t,d:integer;var val:integer;conv:masiv);
var
i,j:integer;
begin
for i:= 1 to m do
 if ((conv[i,1]=t)and(conv[i,2]=d))or((conv[i,1]=d)and(conv[i,2]=t))
  then val:=conv[i,3]  else val:=3;
end;
begin
readln(n);
readln(m);
for i:= 1 to  m do
readln(conv[i,1],conv[i,2],conv[i,3]);
readln(q);
for i:=1 to q do
 readln(quest[i,1],quest[i,2]);
 for i:=1 to q do  begin
 Find(m,quest[i,1],quest[i,2],val,conv); if val<>3 then write(val);
   end;
end.

