#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define sqr(x) ((x)*(x)) #define fz1(i,n) for ((i)=1;(i)<=(n);(i)++) #define fd1(i,n) for ((i)=(n);(i)>=1;(i)--) #define fz0g(i,n) for ((i)=0;(i)<=(n);(i)++) #define fd0g(i,n) for ((i)=(n);(i)>=0;(i)--) #define fz0k(i,n) for ((i)=0;(i)<(n);(i)++) #define fd0k(i,n) for ((i)=(long long)((n)-1);(i)>=0;(i)--) #define fz(i,x,y) for ((i)=(x);(i)<=(y);(i)++) #define fd(i,y,x) for ((i)=(y);(i)>=(x);(i)--) #define fzin fz1(i,n) #define fzim fz1(i,m) #define fzjn fz1(j,n) #define fzjm fz1(j,m) #define ff(c,itr) for (__typeof((c).begin()) itr=(c).begin();itr!=(c).end();itr++) #define rdst(st,len){static char ss[len];scanf(" %s",ss);(st)=ss;} #define inc(x,y) {x+=(y);if(x>=mod)x-=mod;} #define dec(x,y) {x-=(y);if(x<0)x+=mod;} #define spln(i,n) (i==n?'\n':' ') #define fac_init(n){fac[0]=fac[1]=inv[1]=fi[0]=fi[1]=1;fz(i,2,n){fac[i]=1ll*fac[i-1]*i%mod;inv[i]=1ll*(mod-mod/i)*inv[mod%i]%mod;fi[i]=1ll*fi[i-1]*inv[i]%mod;}} using namespace std; inline void read(int &x) { char c;int f=1; while(!isdigit(c=getchar()))if(c=='-')f=-1; x=(c&15);while(isdigit(c=getchar()))x=(x<<1)+(x<<3)+(c&15); x*=f; } int n,m,i,j,fa[3005],vis[3005],val[3005]; vector > bi[3005]; vector ct[3005]; int fnd(int x) { if(fa[x]==x) return x; return fa[x]=fnd(fa[x]); } void merge(int s,int t) { s=fnd(s);t=fnd(t); if(ct[s].size() > pq; t=fnd(1); while(--cnt) { vis[s=t]=1; ff(ct[s],it1){ ff(bi[*it1],it){ int y=fnd(it->first); if(!vis[y]){ val[y]+=it->second; pq.push(make_pair(val[y],y)); } } } t=0; while(!t) { if(pq.empty()) return 0; pair tmp=pq.top();pq.pop(); if(tmp.first==val[tmp.second]){ t=tmp.second; } } } return val[t]; } int main() { while(~scanf("%d%d",&n,&m)) { fz1(i,n){ bi[i].clear(); fa[i]=i; ct[i].clear(); ct[i].push_back(i); } fz1(i,m){ int x,y,z; scanf("%d%d%d",&x,&y,&z); bi[x].push_back(make_pair(y,z)); bi[y].push_back(make_pair(x,z)); } int ans=0x3f3f3f3f; fd(i,n,2){ int s,t; ans=min(ans,solve(i,s,t)); if(!ans) break; merge(s,t); } printf("%d\n",ans); } return 0; }