#include<bits/stdc++.h>
using namespace std;
int n,m;
struct aa{
int z;
int x;
int c;
}b[100010];
struct yy{
int sf;
int jy;
}y[20010];
bool q(aa a,aa b){
return a.c>b.c;
}
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
y[i].sf=0;
y[i].jy=0;
}
for(int i=0;i<m;i++){
int o,p,l;
cin>>o>>p>>l;
o--;
p--;
b[i].z=o;
b[i].x=p;
b[i].c=l;
}
sort(b,b+m,q);
for(int i=0;i<m;i++){
if(y[b[i].z].jy==y[b[i].x].jy&&y[b[i].z].sf==0&&y[b[i].x].sf==0){
y[b[i].z].sf=1;
y[b[i].x].sf=1;
y[b[i].z].jy=1;
}else if(y[b[i].z].jy==y[b[i].x].jy&&y[b[i].z].sf==1&&y[b[i].x].sf==1){
cout<<b[i].c;
return 0;
}else if(y[b[i].z].jy==y[b[i].x].jy&&(y[b[i].z].sf==1||y[b[i].x].sf==1)){
if(y[b[i].z].sf==1){
if(y[b[i].z].jy==1){
y[b[i].x].jy=0;
}else{
y[b[i].x].jy=1;
}
}else{
if(y[b[i].x].jy==1){
y[b[i].z].jy=0;
}else{
y[b[i].z].jy=1;
}
}
y[b[i].z].sf=1;
y[b[i].x].sf=1;
}
}
cout<<0;
return 0;
}