#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 2e3 + 5;
int t, n, m, dis[N], cnt[N];
bool vis[N];
struct Node
{
int to, w;
};vector<Node> e[N];
void spfa()
{
memset(dis, 0x3f, sizeof dis), memset(vis, 0, sizeof vis), memset(cnt, 0, sizeof cnt);
queue<int> q;
q.push(1), dis[1] = 0, vis[1] = true;
while (!q.empty())
{
int u = q.front(); q.pop(), vis[u] = false;
for (int i = 0; i < e[u].size(); i++)
{
int v = e[u][i].to, w = e[u][i].w;
if (dis[v] > dis[u] + w)
{
dis[v] = dis[u] + w, cnt[v] = cnt[u] + 1;
if (cnt[v] >= n)
{
puts("Yes");
return;
}
if (!vis[v])
vis[v] = true, q.push(v);
}
}
}
puts("No");
}
signed main()
{
cin >> t;
while (t--)
{
cin >> n >> m;
for (int i = 1; i <= n; i++)
e[i].clear();
for (int i = 1; i <= m; i++)
{
int u, v, w;
cin >> u >> v >> w;
e[u].push_back({v, w});
if (w >= 0)
e[v].push_back({u, w});
}
spfa();
}
return 0;
}