#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn=1e6+5;
ll n,m;
vector<array<ll,3>>v[maxn];
vector<pair<ll,ll>>path,nodes;
vector<ll>ans;
ll vis1[maxn],vis[maxn];
void dfs(ll x,ll last){
if(vis1[x]==-1||vis1[x]==last) return;
if(ans.size()) return;
if(vis[x]==3){
while(path.back().first!=x){
ans.push_back(path.back().second);
path.pop_back();
}
ans.push_back(path.back().second);
path.pop_back();
while(path.back().first!=x){
ans.push_back(path.back().second);
path.pop_back();
}
ans.push_back(path.back().second);
return;
}
vis[x]++;
nodes.push_back({x,last});
for(auto [to,col,id]:v[x]){
if(col==last) continue;
path.push_back({x,id});
dfs(to,col);
path.pop_back();
if(ans.size()) return;
}
vis[x]--;
}
void dfs1(ll x,ll last){
if(vis[x]==1||ans.size()) return;
vis[x]=2;
for(auto [to,col,id]:v[x]){
if(col==last) continue;
if(ans.size()) return;
path.push_back({x,id});
vis1[x]=col;
if(vis1[to]!=col&&vis[to]==2){
while(path.back().first!=to){
ans.push_back(path.back().second);
path.pop_back();
}
ans.push_back(path.back().second);
}
else if(vis[to]==0) dfs1(to,col);
path.pop_back();
if(ans.size()) return;
}
vis[x]=1;
}
void solve(){
cin>>n>>m;
for(int i=1;i<=m;i++){
ll a,b,c;
cin>>a>>b>>c;
v[a].push_back({b,c,i});
}
for(int i=1;i<=n;i++){
dfs1(i,0);
if(ans.size()){
reverse(ans.begin(),ans.end());
cout<<"YES\n"<<ans.size()<<' ';
for(auto i:ans) cout<<i<<' ';
cout<<'\n';
ans.clear();
for(int i=0;i<=n;i++){
v[i].clear();
vis[i]=vis1[i]=0;
}
path.clear();
return;
}
}
for(int i=0;i<=n;i++) vis[i]=vis1[i]=0;
for(int i=1;i<=n;i++){
dfs(i,0);
for(auto [x,col]:nodes){
if(vis1[x]==0) vis1[x]=col;
else vis1[x]=-1;
}
path.clear();
nodes.clear();
}
if(ans.size()){
reverse(ans.begin(),ans.end());
map<ll,ll>mp;
for(auto i:ans){
if(mp[i]==1){
while(ans.back()!=i) ans.pop_back();
ans.pop_back();
break;
}
mp[i]++;
}
cout<<"YES\n"<<ans.size()<<' ';
for(auto i:ans) cout<<i<<' ';
cout<<'\n';
ans.clear();
}
else cout<<"NO\n";
for(int i=0;i<=n;i++){
v[i].clear();
vis[i]=vis1[i]=0;
}
}
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);
int _=1;
cin>>_;
while(_--) solve();
}