#include #include #include using namespace std; typedef long long ll; struct unionfind{ vector par, sz; unionfind() {} unionfind(int n):par(n), sz(n, 1){ for(int i=0; isz[y]) swap(x, y); par[x]=y; sz[y]+=sz[x]; } bool same(int x, int y){ return find(x)==find(y); } int size(int x){ return sz[find(x)]; } }; int n, m; int a[200020], b[200020], c[200020]; vector g[100010]; bool used[100010]; bool finish[100010]; bool ok; void dfs(int x){ used[x]=1; for(auto y:g[x]){ if(used[y] && !finish[y]) ok=1; if(!used[y]) dfs(y); } finish[x]=1; } int main() { cin>>n>>m; for(int i=0; i>a[i]>>b[i]>>c[i]; a[i]--; b[i]--; } unionfind uf(n); for(int i=0; i