#include using namespace std; using ll = long long; #define int long long const int N = 300005; vector> G[N]; bool vis[N]; int tin[N]; int comp[N], CO = 1; bool dfs(int v, int cur, int par = -1) { vis[v] = true; comp[v] = CO; for (auto [to, col] : G[v]) { if (to == par) { continue; } // cout<> n >> m; for (int i = 0; i < m; ++i) { int u, v, c; cin >> u >> v >> c; G[u].push_back({v, c}); G[v].push_back({u, c}); } for (int i = 0; i < n; ++i) { vis[i] = false; comp[i] = -1; CO = 1; } for (int i = 0; i < n; ++i) { if (!vis[i]) { if (!dfs(i, 0)) { cout << "NO\n"; return; } CO++; } } for (int i = 0; i < n; ++i) { vis[i] = false; comp[i] = -1; CO = 1; } for (int i = 0; i < n; ++i) { if (!vis[i]) { if (!dfs(i, 1)) { cout << "NO\n"; return; } CO++; } } cout << "YES\n"; } int32_t main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int t=1; // cin>>t; for(int _=1;_<=t;_++){ solve(); } }