#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
const int N=2e4+5;
int n,m,f[2*N];
struct node{
int a,b,c;
}t[N];
int find(int x) {return f[x]==x ? x : f[x]=find(f[x]);}
bool cmp(node x,node y) {return x.c>y.c;}
int main() {
scanf("%d %d",&n,&m);
for (int i=1;i<=n;++i) f[i]=i;
for (int i=1;i<=m;++i) scanf("%d %d %d",&t[i].a,&t[i].b,&t[i].c);
sort(t+1,t+m+1,cmp);
for (int i=1;i<=m;++i) {
int a=t[i].a,b=t[i].b;
int px=find(a),py=find(b);
if (px==py) {
printf("%d",t[i].c);
return 0;
}
else {
if (!f[a+n]) f[a+n]=py;
else f[find(a+n)]=py;
if (!f[b+n]) f[b+n]=px;
else f[find(b+n)]=px;
}
}
printf("0");
return 0;
}