#include<bits/stdc++.h>
using namespace std;
int ff[100005];
struct s{
int x,y,t;
}a[1000005];
int f(int v){
if(ff[v]==v){
return v;
}else{
return ff[v]=f(ff[v]);
}
}
bool uu(int x,int y){
int u=f(x);
int v=f(y);
if(u!=v){
return true;
}
ff[u]=v;
return false;
}
bool cmp(s x,s y){
return x.t<y.t;
}
int main(){
long long n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
ff[i]=i;
}
for(int i=1;i<=m;i++){
cin>>a[i].x>>a[i].y>>a[i].t;
}
sort(a+1,a+m+1,cmp);
for(int i=1;i<=m;i++){
if(uu(a[i].x,a[i].y)){
--n;
if(n==1){
cout<<a[i].t;
return 0;
}
}
}
cout<<-1;
return 0;
}