#include<bits/stdc++.h>
#define int long long
#define INF LLONG_MAX
#define maxn 2000010
using namespace std;
struct line{int to,pre,w;}b[maxn];
int head[maxn],t;
inline void ad(int x,int y,int z)
{
t++;
b[t].to=y;
b[t].w=z;
b[t].pre=head[x];
head[x]=t;
}
int n,m;
bool in_q[maxn];
int dis[maxn],cnt[maxn];
bool spfa(int s)
{
queue<int>q;
for(int i=1;i<=n;++i)dis[i]=INF;
memset(in_q,0,sizeof(in_q));
memset(cnt,0,sizeof(cnt));
dis[s]=0; in_q[s]=1;
q.push(s);
while(!q.empty())
{
int x=q.front();
q.pop();
in_q[x]=0;
for(int i=head[x];i;i=b[i].pre)
{
int y=b[i].to;
if(dis[y]>dis[x]+b[i].w)
{
dis[y]=dis[x]+b[i].w;
if(!in_q[y])
{
in_q[y]=1;
cnt[y]++;
if(cnt[y]==n+1)return 0;
q.push(y);
}
}
}
}
return 1;
}
void init()
{
t=0;
memset(head,0,sizeof(head));
}
signed main()
{
int w;
cin>>w;
while(w--)
{
init();
cin>>n>>m;
for(int i=1;i<=n;++i)ad(n+1,i,0);
for(int i=1;i<=m;++i)
{
int x,y,z;
cin>>x>>y>>z;
ad(x-1,y,z); ad(y,x-1,-z);
}
if(!spfa(n+1))puts("false");
else puts("true");
}
return 0;
}