#include <iostream>
#include <algorithm>
#include <stdio.h>
int n,m,w,f,size,tmp;
int d[1000];
const int INF = 1000000000;
struct Tedge{
int a,b,c;
} e[10000];
int main()
{
scanf("%d",&f);
while(f--)
{
scanf("%d %d %d",&n,&m,&w);
for(int i = 0; i <= n; i++) d[i] = 0;
while(m--)
{
int ta,tb,tc;
scanf("%d %d %d",&ta,&tb,&tc);
e[size].a = ta;
e[size].b = tb;
e[size++].c = tc;
e[size].a = tb;
e[size].b = ta;
e[size++].c = tc;
}
while(w--)
{
int ta,tb,tc;
scanf("%d %d %d",&ta,&tb,&tc);
e[size].a = ta;
e[size].b = tb;
e[size++].c = -tc;// otric vremya na rebre
}
for (int i = 0; i < n ; i++) {
tmp = -1;
for (int j = 0; j < size; j++)
if (d[e[j].b] > (d[e[j].a] + e[j].c)) {
d[e[j].b] = std::max(-INF,d[e[j].a] + e[j].c);
tmp = e[j].b;
}
}
if(tmp == -1)
printf("NO\n");
else
printf("YES\n");
//f--;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8c3RkaW8uaD4KCmludCBuLG0sdyxmLHNpemUsdG1wOwppbnQgZFsxMDAwXTsKCmNvbnN0IGludCBJTkYgPSAxMDAwMDAwMDAwOwoKc3RydWN0IFRlZGdlewoJaW50IGEsYixjOwogfSAgZVsxMDAwMF07CgppbnQgbWFpbigpCnsKCXNjYW5mKCIlZCIsJmYpOwoJd2hpbGUoZi0tKQoJewoJCXNjYW5mKCIlZCAlZCAlZCIsJm4sJm0sJncpOwoJCWZvcihpbnQgaSA9IDA7IGkgPD0gbjsgaSsrKSBkW2ldID0gMDsKCQl3aGlsZShtLS0pCgkJewoJCQlpbnQgdGEsdGIsdGM7CgkJCXNjYW5mKCIlZCAlZCAlZCIsJnRhLCZ0YiwmdGMpOwoJCQllW3NpemVdLmEgPSB0YTsKCQkJZVtzaXplXS5iID0gdGI7CgkJCWVbc2l6ZSsrXS5jID0gdGM7CgkJCWVbc2l6ZV0uYSA9IHRiOwoJCQllW3NpemVdLmIgPSB0YTsKCQkJZVtzaXplKytdLmMgPSB0YzsKCQl9CgkJCgkJd2hpbGUody0tKQoJCXsKCQkJaW50IHRhLHRiLHRjOwoJCQlzY2FuZigiJWQgJWQgJWQiLCZ0YSwmdGIsJnRjKTsKCQkJZVtzaXplXS5hID0gdGE7CgkJCWVbc2l6ZV0uYiA9IHRiOwoJCQllW3NpemUrK10uYyA9IC10YzsvLyBvdHJpYyB2cmVteWEgbmEgcmVicmUKCQl9CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBuIDsgaSsrKSB7CgkJCXRtcCA9IC0xOwoJCQlmb3IgKGludCBqID0gMDsgaiA8IHNpemU7IGorKykKCQkJCWlmIChkW2Vbal0uYl0gPiAoZFtlW2pdLmFdICsgZVtqXS5jKSkgewoJCQkJCWRbZVtqXS5iXSA9IHN0ZDo6bWF4KC1JTkYsZFtlW2pdLmFdICsgZVtqXS5jKTsKCQkJCQl0bXAgPSBlW2pdLmI7CgkJCQl9CgkJfQoJCWlmKHRtcCA9PSAtMSkKCQkJcHJpbnRmKCJOT1xuIik7CgkJZWxzZQoJCQlwcmludGYoIllFU1xuIik7CgkJLy9mLS07Cgl9CglyZXR1cm4gMDsKfQ==