#include #include #include using namespace std; int par[200010],sz[200010]; void init(int n){ 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); } typedef long long ll; ll mod = 1000000007; ll pw(ll a,ll x){ ll ret = 1; while(x){ if(x&1) (ret *= a) %= mod; (a *= a) %= mod; x /= 2; } return ret; } pair> p[200010]; vector> G[200010]; int sum[200010] = {}; void dfs(int s,int p){ for(auto v:G[s]){ if(v.first==p) continue; dfs(v.first,s); sum[s] += sum[v.first]; } sum[s]++; } int main(){ int i,n,m,x; cin >> n >> m >> x; for(i=0;i> a >> b >> c; a--; b--; p[i] = {c,{a,b}}; } sort(p,p + m); ll ans = 0; init(n); for(i=0;i