#include<bits/stdc++.h>
using namespace std;
int ans,n,m,num;
const int A=100000;
int fa[A];
struct node{
int x,y,t;
};
node e[A];
bool cmp(node a,node b){
return a.t<b.t;
}
int find(int x){
if(fa[x]!=x)fa[x]=find(fa[x]);
return fa[x];
}
int main(){
ans=0;num=0;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i)fa[i]=i;
for(int i=1;i<=m;++i){
scanf("%d%d%d",&e[i].x,&e[i].y,&e[i].t);
}
sort(e+1,e+m+1,cmp);
for(int i=1;i<=m;++i){
int x1=find(e[i].x);
int y1=find(e[i].y);
if(x1!=y1){
fa[x1]=y1;
ans=max(ans,e[i].t);num++;
}
}
if(num<n-1){
printf("-1");
}else printf("%d",ans);
return 0;
}