#include<bits/stdc++.h>
using namespace std;
int n,m,x,y,z;
struct node{
int a,b;
};
node f[100010];
int find(int a){
if(a==f[a].a)return a;
return f[a].a=find(f[a].a);
}
int cmp(node x,node y){
return x.b<y.b;
}
int main(){
cin>>m>>n;
for(int i=1;i<=m;i++)f[i].a=i;
while(n--){
cin>>x>>y>>z;
f[y].a=f[x].a,f[x].b=z,f[y].b=z;
}
sort(f+1,f+1+m,cmp);
if(f[1].b==0)cout<<-1<<endl;
else cout<<f[m].b<<endl;
return 0;
}