#include<cstdio>#include<algorithm>#define maxn 100005usingnamespace std;struct node{int u, v, c;}q[maxn];boolcmp(const node &a,const node &b){return a.c > b.c;}int f[maxn];intgetf(int x){return x == f[x]? x : f[x]=getf(f[x]);}int n, m;intmain(){scanf("%d%d",&n,&m);for(int i =1; i <= m; i++)scanf("%d%d%d",&q[i].u,&q[i].v,&q[i].c);sort(q +1, q + m +1, cmp);for(int i =1; i <=2* n; i++) f[i]= i;for(int i =1; i <= m; i++){if(getf(q[i].u)==getf(q[i].v)){printf("%d\n", q[i].c);return0;}
f[getf(q[i].u)]=getf(q[i].v + n);
f[getf(q[i].v)]=getf(q[i].u + n);}printf("0\n");return0;}