#include<bits/stdc++.h>
using namespace std;
const int MAX=1e5+5;
int n,m,x,y,fa[MAX],d[MAX];
struct sb{
int a,b,c;
}s[MAX];
bool cmp(sb x,sb y){
return x.c>y.c;
}
int get(int x){
if(fa[x]==x)return x;
int t=fa[x];
fa[x]=get(fa[x]);
d[x]^=d[t];
return fa[x];
}
void merge(int x,int y){
int p=get(x),q=get(y);
d[p]=d[x]^d[y];
fa[p]=q;
}
signed main(){
cin>>n>>m;
for(int i=1;i<=m;i++)cin>>s[i].a>>s[i].b>>s[i].c;
for(int i=1;i<=n;i++)fa[i]=i;
sort(s+1,s+m+1,cmp);
for(int i=1;i<=m;i++){
x=get(s[i].a),y=get(s[i].b);
if(x==y&&(d[s[i].a]^d[s[i].b])==0){
cout<<s[i].c;
return 0;
}
else if(x!=y)merge(x,y);
}
cout<<0;
return 0;
}
孩子要调傻了