#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m;
struct node{
int u,v,w;
}s[2001];
int dis[2001],ds[2001];
void bakaisgod(){
scanf("%lld%lld",&n,&m);
int k=0;
for (int i=1;i<=m;i++){
scanf("%lld%lld%lld",&s[i].u,&s[i].v,&s[i].w);
if (s[i].w>=0){
k++;
s[k+m]={s[i].v,s[i].u,s[i].w};
}
}
m+=k;
for (int i=1;i<=n;i++) dis[i]=1e18;
dis[1]=0;
for (int i=1;i<=n;i++){
for (int j=1;j<=m;j++){
int u=s[j].u,v=s[j].v,w=s[j].w;
if (dis[u]!=1e18 and dis[u]+w<=dis[v]){
dis[v]=dis[u]+w;
}
}
}
for (int i=1;i<=n;i++) ds[i]=dis[i];
for (int j=1;j<=m;j++){
int u=s[j].u,v=s[j].v,w=s[j].w;
if (dis[u]!=1e18 and dis[u]+w<=dis[v]){
dis[v]=dis[u]+w;
}
}
for (int i=1;i<=n;i++){
if (ds[i]!=dis[i]){
printf("YES\n");
return;
}
}
cout<<"NO"<<endl;
return;
}
signed main(){
int t;
cin>>t;
while (t--){
bakaisgod();
}
return 0;
}