#include<bits/stdc++.h>
#define MAXN 11451
using namespace std;
const int inf = 114514191;
using pii = pair<int,int>;
int dis[MAXN],times[MAXN];
bool vis[MAXN];
vector<pii> G[MAXN];
int n,m;
void init(){
for(int i=1;i<=n;i++) dis[i] = inf;
memset(times,0,sizeof times);
memset(vis,0,sizeof vis);
for(int i=1;i<=n;i++) G[i].clear();
}
bool SPFA(){
queue<int> q;
q.push(1);
dis[1] = 0;times[1] = 1;
while(!q.empty()){
int fro = q.front();
vis[fro] = 0;
q.pop();
for(auto v : G[fro]){
if(vis[v.second] || dis[v.second] <= dis[fro] + v.first) continue;
vis[v.second] = 1;q.push(v.second);
dis[v.second] = dis[fro] + v.first;
times[v.second] ++;
if(times[v.second] > n) return true;
}
}
return false;
}
void solve(){
scanf("%d%d",&n,&m);
init();
for(int i=1;i<=m;i++){
int u,v,w;scanf("%d%d%d",&u,&v,&w);
if(w >= 0) G[v].push_back(make_pair(w,u));
G[u].push_back(make_pair(w,v));
}
if(SPFA()){
printf("YES\n");
return;
}
printf("NO\n");
}
int main(){
int t;scanf("%d",&t);
for(int i=1;i<=t;i++) solve();
return 0;
}