#include<iostream> #include<algorithm> using namespace std; int n,m; long long fa[100000001]; struct hay { int x,y,z; }a[10001]; inline bool cmp(hay a,hay b) { return a.z<b.z; } inline int find(int t) { if(fa[t]==t) return t; else return fa[t]=find(fa[t]); } inline void me(int r1,int r2) { int s1=find(r1); int s2=find(r2); fa[s1]=s2; } inline void Kruskal() { int k=0; int k1,k2; int ans=0; for(int i=1;i<=m;i++) { k1=find(a[i].x); k2=find(a[i].y); if(k1==k2) continue; k++; me(k1,k2); ans=max(a[i].z,ans); if(k==n-1) break; } cout<<ans; } int main() { cin>>n>>m; int i; for(i=1;i<=n;i++) { fa[i]=i; } for(i=1;i<=m;i++) { cin>>a[i].x>>a[i].y>>a[i].z; } sort(a+1,a+m+1,cmp); Kruskal(); return 0; }