#include<bits/stdc++.h>
using namespace std;
long long n,m,u,v,w,i,j,e[2001],x,t,s,f[2001],o;
bool d[2001];
vector<long long>a[2001];
vector<long long>b[2001];
queue<long long>c;
int main()
{
scanf("%lld",&t);
for(s=0;s<t;s++)
{
scanf("%lld%lld",&n,&m);
for(i=0;i<n;b[i].clear(),i++)
a[i].clear();
memset(d,0,sizeof(d));
memset(f,0,sizeof(f));
for(i=0;i<m;i++)
{
scanf("%lld%lld%lld",&u,&v,&w);
a[u].push_back(v);
b[u].push_back(w);
if(w>=0)
{
a[v].push_back(u);
b[v].push_back(w);
}
}
for(o=0,i=2;i<=n;i++)
e[i]=2147483647;
c=queue<long long>();
c.push(1);
d[1]=1;
while(!c.empty())
{
x=c.front();
c.pop();
d[x]=0;
for(j=0;j<a[x].size()&&o==0;j++)
if(e[x]+b[x][j]<e[a[x][j]])
{
e[a[x][j]]=e[x]+b[x][j];
f[a[x][j]]++;
if(f[a[x][j]]>=n) o=1;
if(d[a[x][j]]==0)
{
c.push(a[x][j]);
d[a[x][j]]=1;
}
}
if(o!=0) break;
}
if(o!=0) printf("YES\n");
else printf("NO\n");
}
return 0;
}