#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int>pii;
const int N=10005;
const int inf=0x3f3f3f3f;
int T;
int n,m;
int dis[N];
struct node{
int u=0,v=0,w=0;
}e[N];
void Bellman_ford(){
memset(dis,inf,sizeof dis);dis[1]=0;
for(int k=1;k<=n;k++){
for(int i=1;i<=m;i++){
if(dis[e[i].u]!=inf&&dis[e[i].u]+e[i].w<dis[e[i].v]){
dis[e[i].v]=dis[e[i].u]+e[i].w;
if(k==n)return puts("YES"),void();
}
}
}
puts("NO");
}
int main(){
cin>>T;
while(T--){
cin>>n>>m;
for(int i=1;i<=m;i++)
cin>>e[i].u>>e[i].v>>e[i].w;
Bellman_ford();
}
return 0;
}
到底哪里错了