#include<iostream>
#include<algorithm>
using namespace std;
int n,m;
long ans=0;
int p[2002];
long w[10002];
int r[10002];
int u[10002];
int v[10002];
bool comp(int i,int j){return w[i]<w[j];}
int find(int x){
return p[x]==x?x:p[x]=find(p[x]);}
void kruskal(){
int i,j,e;
ans=0;
for(i=1;i<=n;i++) p[i]=i;
for(i=1;i<=m;i++) r[i]=i;
sort(r+1,r+m+1,comp);
for(i=1;i<=m;i++){
e=r[i];
int x=find(u[e]);
int y=find(v[e]);
if(x!=y){
ans=w[e];
p[x]=y;}
}
}
int main(){
int i,j;
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++)
scanf("%d%d%ld",&u[i],&v[i],&w[i]);
kruskal();
cout<<ans<<endl;
return 0;}