#include #include #include using namespace std; #include struct UF{ int n; vectorparent,rank; UF(int n_=0):n(n_),parent(n_),rank(n_,1) { for(int i=0;i >edge; vectorG[1<<17]; int cnt[1<<17]; main() { cin>>N>>M; UF uf(N); for(int i=0;i>a>>b>>c; a--,b--; if(c==1) { if(!uf.unite(a,b)) { cout<<"Yes"<p:edge) { int u=uf.find(p.first); int v=uf.find(p.second); G[u].push_back(v); cnt[v]++; } queueP; int vc=0; for(int i=0;i