#include <bits/stdc++.h>
using namespace std;
#define int long long
const int MAXN = 1115;
struct Edge {
int u, v, w;
};
struct cmp {
bool operator() (Edge x, Edge y) {
return x.w < y.w;
}
};
int N, M;
vector<Edge> g;
struct Dosu {
int par[MAXN], sz[MAXN];
void INIT() {
for (int i = 1; i <= MAXN - 1; i++) par[i] = i, sz[i] = 1;
}
int find_set(int u) {
return (par[u] == u ? u : par[u] = find_set(par[u]));
}
void union_set(int u, int v) {
u = find_set(u), v = find_set(v);
if (sz[u] < sz[v]) swap(u, v);
par[v] = par[u];
sz[u] += sz[v];
}
} DSU;
main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> N >> M;
DSU.INIT();
for (int i = 1; i <= M; i++) {
int u, v, w;
cin >> u >> v >> w;
g.push_back({u, v, w});
}
sort(g.begin(), g.end(), cmp());
int ans = 0;
for (auto E : g) {
if (DSU.find_set(E.u) != DSU.find_set(E.v)) {
DSU.union_set(E.u, E.v);
ans = max(ans, E.w);
}
//cout << E.u << ' ' << E.v << ' ' << E.w << '\n';
}
cout << ans;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZwoKY29uc3QgaW50IE1BWE4gPSAxMTE1OwoKc3RydWN0IEVkZ2UgewogICAgaW50IHUsIHYsIHc7Cn07CgpzdHJ1Y3QgY21wIHsKICAgIGJvb2wgb3BlcmF0b3IoKSAoRWRnZSB4LCBFZGdlIHkpIHsKICAgICAgICByZXR1cm4geC53IDwgeS53OwogICAgfQp9OwoKaW50IE4sIE07CnZlY3RvcjxFZGdlPiBnOwoKc3RydWN0IERvc3UgewogICAgaW50IHBhcltNQVhOXSwgc3pbTUFYTl07CiAgICB2b2lkIElOSVQoKSB7CiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gTUFYTiAtIDE7IGkrKykgcGFyW2ldID0gaSwgc3pbaV0gPSAxOwogICAgfQoKICAgIGludCBmaW5kX3NldChpbnQgdSkgewogICAgICAgIHJldHVybiAocGFyW3VdID09IHUgPyB1IDogcGFyW3VdID0gZmluZF9zZXQocGFyW3VdKSk7CiAgICB9CgogICAgdm9pZCB1bmlvbl9zZXQoaW50IHUsIGludCB2KSB7CiAgICAgICAgdSA9IGZpbmRfc2V0KHUpLCB2ID0gZmluZF9zZXQodik7CiAgICAgICAgaWYgKHN6W3VdIDwgc3pbdl0pIHN3YXAodSwgdik7CiAgICAgICAgcGFyW3ZdID0gcGFyW3VdOwogICAgICAgIHN6W3VdICs9IHN6W3ZdOwogICAgfQp9IERTVTsKCgptYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7CiAgICBjb3V0LnRpZSgwKTsKCiAgICBjaW4gPj4gTiA+PiBNOwogICAgRFNVLklOSVQoKTsKCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBNOyBpKyspIHsKICAgICAgICBpbnQgdSwgdiwgdzsKICAgICAgICBjaW4gPj4gdSA+PiB2ID4+IHc7CiAgICAgICAgZy5wdXNoX2JhY2soe3UsIHYsIHd9KTsKICAgIH0KCiAgICBzb3J0KGcuYmVnaW4oKSwgZy5lbmQoKSwgY21wKCkpOwoKICAgIGludCBhbnMgPSAwOwoKICAgIGZvciAoYXV0byBFIDogZykgewogICAgICAgIGlmIChEU1UuZmluZF9zZXQoRS51KSAhPSBEU1UuZmluZF9zZXQoRS52KSkgewogICAgICAgICAgICBEU1UudW5pb25fc2V0KEUudSwgRS52KTsKICAgICAgICAgICAgYW5zID0gbWF4KGFucywgRS53KTsKICAgICAgICB9CiAgICAgICAgLy9jb3V0IDw8IEUudSA8PCAnICcgPDwgRS52IDw8ICcgJyA8PCBFLncgPDwgJ1xuJzsKICAgIH0KCiAgICBjb3V0IDw8IGFuczsKfQo=