const
maxn=5000;
maxe=10000000;
type
edge=record
a,b,w:longint;
end;
var
edges:array[1..maxe]of edge;
dis:array[1..maxn]of longint;
pre:array[1..maxn]of longint;
e,n,s,t:longint;
procedureinit;var
x,y,z,i,j:longint;
begin
readln(n,s,t);
for i:=1to s dobegin
readln(x,y,z);
with edges[i*2-1] dobegin a:=x;b:=y;w:=z;end;
with edges[i*2] dobegin a:=y;b:=x;w:=z;end;
end;
e:=s*2;
for i:=1to t dobegin
readln(x,y,z);
with edges[i+e] dobegin a:=x;b:=y;w:=-z;end;
end;
e:=e+t;
fillchar(dis,sizeof(dis),$7f div3);
dis[s]:=0;pre[s]:=s;
end;
procedurerelax(u,v,w:integer);beginif dis[u]+w<dis[v] thenbegin
dis[v]:=dis[u]+w;
pre[v]:=u;
endend;
functionbellman_ford:boolean;
var
i,j:longint;
beginfor i:=1to n dofor j:=1to e dowith edges[j] do relax(a,b,w);
for i:=1to e dowith edges[i] doif dis[a]+w<dis[b] thenexit(false);
exit(true)
end;
var
i,o:longint;
begin
readln(o);
for i:=1to o dobegin
init;
if bellman_ford then writeln('No')
else writeln('Yes')
end;
end.