#include<bits/stdc++.h>
using namespace std;
const int N=2005,inf=0x3f3f3f3f;
int g,n,m,dis[N];
struct stu{
int u,v,w;
} a[N];
void relax(int u,int v,int w)
{
if(dis[u]+w<dis[v]){
dis[v]=dis[u]+w;
}
}
int bf(int h)
{
for(int i=1;i<n;i++){
for(int j=1;j<=h;j++){
if(a[j].u<inf) relax(a[j].u,a[j].v,a[j].w);
}
}
for(int i=1;i<=h;i++){
if(dis[a[i].u]+a[i].w<dis[a[i].v]){
return 1;
}
}
return 0;
}
int main(){
scanf("%d",&g);
while(g--){
int h=1;
memset(dis,inf,sizeof(dis));
memset(a,0,sizeof(a));
scanf("%d%d",&n,&m);
for(int i=1,u,v,w;i<=m;h++,i++){
scanf("%d%d%d",&u,&v,&w);
a[h].u=u;
a[h].v=v;
a[h].w=w;
if(u==1){
h++;
a[h].u=v;
a[h].v=u;
a[h].w=w;
}
}
h--;
if(bf(h)) printf("YES\n");
else printf("NO\n");
}
return 0;
}