#include #define endl '\n' #define fi first #define se second #define int long long using namespace std; void fileIO() { freopen("city.in", "r", stdin); freopen("city.out", "w", stdout); } void fastIO() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); } mt19937 mt(666); const int MAXN=300005; const int MAXM=310005; int n,m; int s,t; pair,int> edges[MAXM]; int par[MAXN]; int depth[MAXN]; long long sum=0; long long ans=(long long)1e18; int getRoot(int v) { if(v==par[v]) return v; return par[v]=getRoot(par[v]); } void unite(int u,int v) { if(u==v) return; if(depth[u],int> a, pair,int> b) { return a.se>b.se; } pair,int> copy1[MAXM]; void calc(int tt) { for(int i=1;i<=m;i++) copy1[i]=edges[i]; if(tt>0) { for(int i=0;i>n>>m; cin>>s>>t; for(int i=1;i<=m;i++) { cin>>edges[i].fi.fi>>edges[i].fi.se>>edges[i].se; sum+=edges[i].se; } sort(edges+1,edges+m+1,cmp); for(int i=0;i<42;i++) { calc(i); } cout<