#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int fa[40010];
int n,m;
struct node{
int x,y,v;
};
node a[10010];
bool cmp(node n1, node n2){
return n1.v > n2.v;
}
int find(int x){
if (x == fa[x]){
return x;
}else{
return fa[x] = find(fa[x]);
}
}
void merge(int x, int y){
int fx = find(x);
int fy = find(y);
if (fx != fy){
fa[fx] = fy;
}
}
int main(){
cin >> n >> m;
for (int i = 1; i <= m; i++){
cin >> a[i].x >> a[i].y >> a[i].v;
}
sort(a + 1, a + m + 1, cmp);
for (int i = 1; i <= n * 2; i++){
fa[i] = i;
}
for (int i = 1; i <= m; i++){
if (find(a[i].x == find(a[i].y))){
cout << a[i].v;
return 0;
}
}
cout << 0;
return 0;
}