#include<bits/stdc++.h>
#define up(i,l,r) for(ll i=l,E##i=r;i<=E##i;++i)
#define N 5+2000
#define inf 0x3f3f3f3f
using namespace std;
using ll = long long;
ll n, m, d[N], v[N], g[N][N];
int main() {
cin >> n >> m;
memset( g, 0x3f, sizeof g );
up( i, 1, m ) {
ll a, b, l;
cin >> a >> b >> l;
g[b][a] = g[a][b] = min( g[a][b], l );
}
memset( d, 0x3f, sizeof d );
d[1] = 0;
ll ans = -1;
up( i, 1, n ) {
int p = 0;
up( j, 1, n ) if ( !v[j] && d[j] < d[p] ) p = j;
v[p] = 1;
up( j, 1, n ) if ( !v[j] ) d[j] = min( d[j], g[i][j] );
}
up( i, 1, n ) ans = max( ans, d[i] );
cout << ans;
}