program y1984;

type
masiv=array[1..1024] of longint;
var
 m,n:1..1024;
 q:1..100;
 code:0..2;
 i,j,k:integer;
 a,b,r,va,vb:masiv;



 begin
  readln(n);
  readln(m);
  for i:= 1 to m do
    begin
     readln(a[i],b[i],r[i]);
    end;
    readln(q);
    for  j:=1 to q do
     begin
      readln(va[q],vb[q]);
     end;

     if q>1 then for j:=1 to q do begin
     writeln(r[j+m-n+q])
     end;

      for i:= 1 to m do
       if (r[i]=r[i+1]) and (r[i]=0) then begin
       code:=0;
       writeln(code);
       end
             else

          for i:=1 to m  do
           for j:= 1 to  q  do
            if (a[i]=va[j]) and (b[i]=vb[j] ) then
            begin

            writeln(r[i]);
            end

       else
           for j:=va[j] to vb[j] do begin

            if (a[vb[j]]<>b[vb[j-1]]) and ((r[j]=r[j-2]) or (r[j]<>r[j-1]))
              then

                code:=1
              else

                code:=0;
                end; begin

                  writeln(code);
                end;



     if q>60 then for i:=1 to (q div 2) do
     begin
      for i:=0 to 2 do
      code:=i;
     writeln(code);
     end;

 readln;
end.
