#include using namespace std; void bfs(int v, const vector> & g, vector & comp) { if(comp[v]) return; comp[v] = v+1; queue q; q.push(v); while(!q.empty()) { for(auto a : g[q.front()]) { if(!comp[a]) { comp[a] = v+1; q.push(a); } } q.pop(); } } int main() { int n,m; cin>>n>>m; vector> g0(n), g1(n); while(m--) { int u,v,c; cin>>u>>v>>c; if(c==0) { g0[u].push_back(v); g0[v].push_back(u); } else { g1[u].push_back(v); g1[v].push_back(u); } } vector comp0(n,0), comp1(n,0); for(int i = 0; i