{
TASK: Y1984
LANG: PASCAL
}
program y1984;
var ag1,ag2,qag1,qag2,r,qr,lag1,lag2:array[0..1024]of integer;
    i,j,a,b,x,y,q,n,m,br,kr:integer;
begin

    readln(n);
    readln(m);
    for i:=1 to m do
        readln(ag1[i],ag2[i],r[i]);
    readln(q);
    for i:=1 to q do
       readln(qag1[i],qag2[i]);

    writeln(0);



    br:=1;
    kr:=1;
    b:=1;

    for j:=1 to q do
       for i:=1 to m do
       begin
          if r[i]=0 then
          begin
             lag1[br]:=ag1[i];
             br:=br+1;
             lag1[br]:=ag2[i];
                for b:=1 to m do
                while kr+br=n do
                begin
                   for a:=1 to br do
                      if (ag1[b]=lag1[a])and(r[b]=1) then
                      begin
                         lag2[kr]:=ag2[b];
                         kr:=kr+1;
                         b:=b+1;
                      end
                      else
                      if (ag2[b]=lag1[a])and(r[b]=1) then
                      begin
                         lag2[kr]:=ag1[b];
                         kr:=kr+1;
                         b:=b+1;
                      end;
                end;
          end;
       end;







{    for i:=1 to m do
       if ((qag1[i]=ag1[i])or(qag2[i]=ag2[i]))and(r[i]=0) then
          begin
             lag1[br]:=ag1[i];
             br:=br+1;
             lag1[br]:=ag2[i];
             br:=br+1;
          end
       else
       if r[i]=1 then
          begin
             lag1[br]:=ag1[i];
             br:=br+1;
             lag2[kr]:=ag2[i];
             kr:=kr+1;
          end
       else
          continue;

}





{    writeln;
    for i:=1 to m do
       writeln(ag1[i],' ',ag2[i],' ',r[i]);
    writeln;
    for i:=1 to br do
       write(lag1[i]:3);
    writeln;
    for i:=1 to kr do
       write(lag2[i]:3);
 }
    readln;
end.