#include<iostream>
#include<vector>
#include<utility>
#include<cstring>
#define pii pair<int,int>
#include<queue>
using namespace std;
vector<pii> mp[2001];int dis[2001],vis[2001],cnt[2001];
int n,m;
void spfa(){
queue<pii> q;q.push(make_pair(0,1));dis[1]=cnt[1]=0;vis[1]=1;
while(q.size()){
pii tmp=q.front();q.pop();
int date=tmp.first,ver=tmp.second;vis[ver]=0;
for(int i=0;i<mp[ver].size();i++){
int j=mp[ver][i].second;
if(dis[j]>date+mp[ver][i].first){
dis[j]=date+mp[ver][i].first;
cnt[j]=cnt[ver]+1;
if(cnt[j]>=n){
cout<<"YES\n";
return;
}
if(!vis[j]){
vis[j]=1;
q.push(make_pair(dis[j],j));
}
}
}
}
cout<<"NO\n";
}
int main(){
int t;cin>>t;
while(t--){
memset(mp,0,sizeof(mp));
memset(dis,127/3,sizeof(dis));
memset(vis,0,sizeof(vis));
memset(cnt,0,sizeof(cnt));
cin>>n>>m;
while(m--){
int a,b,s;cin>>a>>b>>s;
if(s>=0){
mp[a].push_back(make_pair(s,b));
mp[b].push_back(make_pair(s,a));
}
else{
mp[a].push_back(make_pair(s,b));
}
}
spfa();
}
return 0;
}