#include<bits/stdc++.h>
using namespace std;
#define INF 2147483648
int t;
int n,m;
int e,v,w;
int g[2010][2010];
int pre[2010],dis[2010],u[2010];
bool vis[2010];
bool SPFA(int sour) // sour 源点
{
queue<int> q;
memset(vis,0,sizeof(vis));
memset(pre,-1,sizeof(pre));
memset(u,0,sizeof(u));
for(int i = 1; i <= n; i++)
{
dis[i] = INF;
}
q.push(sour);
u[sour]++;
vis[sour] = true;
dis[sour] = 0;
while(!q.empty())
{
int v1;
v1 = q.front();
q.pop();
vis[v1] = false;
for(int i = 0; i < n; i++)
{
if(dis[i] > dis[v1] + g[v1][i])
{
dis[i] = dis[v1] + g[v1][i];
if(!vis[i])
{
q.push(i);
u[i]++;
if(u[i] > n)
{
while(!q.empty())
{
q.pop();
}
return true;
}
vis[i] = true;
pre[i] = v1;
}
}
}
}
return false;
}
int main()
{
cin>>t;
while(t--)
{
memset(g,INF,sizeof(g));
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>e>>v>>w;
if(w>=0)
{
g[e][v]=w;
g[v][e]=w;
}
else
{
g[e][v]=w;
}
}
if(SPFA(1))
{
cout<<"YES";
}
else if(!SPFA(1))
{
// for(int i=1;i<=n;i++)
// {
// cout<<u[i]<<" ";
// }
cout<<"NO";
}
}
return 0;
}