#include using namespace std; #define ALL(x) x.begin(),x.end() #define rep(i,n) for(int i=0;i<(n);i++) #define debug(v) cout<<#v<<":";for(auto x:v){cout<bool chmax(T &a,const T &b){if(abool chmin(T &a,const T &b){if(b par; vector siz; int c;//親の個数(グループ数) void init(int n){ c=n; for(int i=0;i>n>>m; UnionFind uf(n); vector> es; rep(i,m){ int a,b,c;cin>>a>>b>>c;a--,b--; if(c==1){ if(uf.sameParent(a,b)){ cout<<"Yes"<> g(n); for(pair &p:es) g[uf.root(p.first)].push_back(uf.root(p.second)); vector check(n,false); function dfs=[&](int now){ for(auto to:g[now]){ if(check[to]){ cout<<"Yes"<