#include <bits/stdc++.h>
using namespace std;
int n, m;
set<int> s1, s2;
struct node {
int a, b, c;
} f[100005];
bool cmp(node a, node b) {
return a.c > b.c;
}
int main () {
cin >> n >> m;
for (int i = 1; i <= m; i++)
cin >> f[i].a >> f[i].b >> f[i].c;
sort(f + 1, f + 1 + n, cmp);
for (int i = 1; i <= m; i++) {
if (s1.count(f[i].a)) {
if (s1.count(f[i].b)) {
cout << f[i].c << endl;
return 0;
} else if (!s2.count(f[i].b)) {
s2.insert(f[i].b);
}
} else {
if (s2.count(f[i].a)) {
if (s2.count(f[i].b)) {
cout << f[i].c << endl;
return 0;
} else if (!s1.count(f[i].b)) {
s1.insert(f[i].b);
}
} else {
if (s1.count(f[i].b)) {
s2.insert(f[i].a);
} else if (s2.count(f[i].b)) {
s1.insert(f[i].a);
} else {
s1.insert(f[i].a);
s2.insert(f[i].b);
}
}
}
}
cout << 0 << endl;
return 0;
}