#include<bits/stdc++.h>
using namespace std;
const int N=3005;
const int INF=2147483647;
int h[N],nxt[N],to[N],val[N],cnt,g[N][N];
int dis[N],tmp[N];
bool vis[N],ans[N];
void init(){
for(int i=1;i<=N;i++) tmp[i]=0;
cnt=0;
memset(dis,0x3f,sizeof(dis));
}
void add(int a,int b,int c){
g[a][b]=c;
}
void SPFA(int l,int n,int m){
queue<int> q;
q.push(1);
dis[1]=0;
vis[1]=true;
while(q.size()){
int u=q.front(); q.pop();
vis[u]=false;
for(int j=1;j<=n;j++){
int v=j,w=g[u][j];
if(dis[v]>dis[u]+w){
dis[v]=dis[u]+w;
if(vis[v]) continue;
vis[v]=true;
tmp[v]++;
if(tmp[v]>n){
ans[l]=true;
return;
}
q.push(v);
}
}
}
}
int main(){
int T; cin>>T;
for(int l=1;l<=T;l++){
init();
int n,m,w; cin>>n>>m>>w;
for(int i=1;i<=m;i++){
int u,v,p; cin>>u>>v>>p;
add(u,v,p); add(v,u,p);
}
for(int i=1;i<=w;i++){
int u,v,p; cin>>u>>v>>p;
add(u,v,-p);
}
SPFA(l,n,m);
}
for(int i=1;i<=T;i++)
if(ans[i]) cout<<"YES"<<'\n';
else cout<<"NO"<<'\n';
return 0;
}