#include <bits/stdc++.h>
using namespace std;
struct Edge {
int u, v;
long long w;
};
int N, M;
vector<Edge> edges;
bool ok(long long W) {
vector<vector<pair<int,int>>> adj(N+1);
int any = 0;
for (int i = 0; i < M; ++i) if (edges[i].w <= W) {
adj[edges[i].u].push_back({edges[i].v, i});
adj[edges[i].v].push_back({edges[i].u, i});
any = 1;
}
if (N == 1) return true; // 1 thành phố: luôn thỏa
if (!any) return false; // không có cạnh nào
vector<int> disc(N+1, 0), low(N+1, 0);
int timer = 0; bool hasBridge = false;
function<void(int,int)> dfs = [&](int u, int pe){
disc[u] = low[u] = ++timer;
for (auto [v, id] : adj[u]) {
if (id == pe) continue;
if (!disc[v]) {
dfs(v, id);
low[u] = min(low[u], low[v]);
if (low[v] > disc[u]) hasBridge = true; // cầu
} else {
low[u] = min(low[u], disc[v]);
}
}
};
int start = 1;
while (start <= N && adj[start].empty()) ++start;
if (start > N) return false; // có đỉnh cô lập (N>1)
dfs(start, -1);
for (int i = 1; i <= N; ++i)
if (!disc[i]) return false; // không liên thông
return !hasBridge;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
if (!(cin >> N >> M)) return 0;
edges.resize(M);
vector<long long> ws;
ws.reserve(M);
for (int i = 0; i < M; ++i) {
cin >> edges[i].u >> edges[i].v >> edges[i].w;
ws.push_back(edges[i].w);
}
sort(ws.begin(), ws.end());
ws.erase(unique(ws.begin(), ws.end()), ws.end());
if (ws.empty()) {
cout << (N == 1 ? 0 : -1) << '\n';
return 0;
}
// Nếu dùng tất cả cạnh vẫn không được → -1
if (!ok(ws.back())) {
cout << -1 << '\n';
return 0;
}
int l = 0, r = (int)ws.size()-1, ans = r;
while (l <= r) {
int mid = (l + r) / 2;
if (ok(ws[mid])) { ans = mid; r = mid - 1; }
else l = mid + 1;
}
cout << ws[ans] << '\n';
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgRWRnZSB7CiAgICBpbnQgdSwgdjsKICAgIGxvbmcgbG9uZyB3Owp9OwoKaW50IE4sIE07CnZlY3RvcjxFZGdlPiBlZGdlczsKCmJvb2wgb2sobG9uZyBsb25nIFcpIHsKICAgIHZlY3Rvcjx2ZWN0b3I8cGFpcjxpbnQsaW50Pj4+IGFkaihOKzEpOwogICAgaW50IGFueSA9IDA7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IE07ICsraSkgaWYgKGVkZ2VzW2ldLncgPD0gVykgewogICAgICAgIGFkaltlZGdlc1tpXS51XS5wdXNoX2JhY2soe2VkZ2VzW2ldLnYsIGl9KTsKICAgICAgICBhZGpbZWRnZXNbaV0udl0ucHVzaF9iYWNrKHtlZGdlc1tpXS51LCBpfSk7CiAgICAgICAgYW55ID0gMTsKICAgIH0KICAgIGlmIChOID09IDEpIHJldHVybiB0cnVlOyAgICAgICAgICAgICAgICAgICAgIC8vIDEgdGjDoG5oIHBo4buROiBsdcO0biB0aOG7j2EKICAgIGlmICghYW55KSByZXR1cm4gZmFsc2U7ICAgICAgICAgICAgICAgICAgICAgIC8vIGtow7RuZyBjw7MgY+G6oW5oIG7DoG8KCiAgICB2ZWN0b3I8aW50PiBkaXNjKE4rMSwgMCksIGxvdyhOKzEsIDApOwogICAgaW50IHRpbWVyID0gMDsgYm9vbCBoYXNCcmlkZ2UgPSBmYWxzZTsKCiAgICBmdW5jdGlvbjx2b2lkKGludCxpbnQpPiBkZnMgPSBbJl0oaW50IHUsIGludCBwZSl7CiAgICAgICAgZGlzY1t1XSA9IGxvd1t1XSA9ICsrdGltZXI7CiAgICAgICAgZm9yIChhdXRvIFt2LCBpZF0gOiBhZGpbdV0pIHsKICAgICAgICAgICAgaWYgKGlkID09IHBlKSBjb250aW51ZTsKICAgICAgICAgICAgaWYgKCFkaXNjW3ZdKSB7CiAgICAgICAgICAgICAgICBkZnModiwgaWQpOwogICAgICAgICAgICAgICAgbG93W3VdID0gbWluKGxvd1t1XSwgbG93W3ZdKTsKICAgICAgICAgICAgICAgIGlmIChsb3dbdl0gPiBkaXNjW3VdKSBoYXNCcmlkZ2UgPSB0cnVlOyAvLyBj4bqndQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbG93W3VdID0gbWluKGxvd1t1XSwgZGlzY1t2XSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9OwoKICAgIGludCBzdGFydCA9IDE7CiAgICB3aGlsZSAoc3RhcnQgPD0gTiAmJiBhZGpbc3RhcnRdLmVtcHR5KCkpICsrc3RhcnQ7CiAgICBpZiAoc3RhcnQgPiBOKSByZXR1cm4gZmFsc2U7ICAgICAgICAgICAgICAgICAvLyBjw7MgxJHhu4luaCBjw7QgbOG6rXAgKE4+MSkKCiAgICBkZnMoc3RhcnQsIC0xKTsKCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBOOyArK2kpCiAgICAgICAgaWYgKCFkaXNjW2ldKSByZXR1cm4gZmFsc2U7ICAgICAgICAgICAgICAvLyBraMO0bmcgbGnDqm4gdGjDtG5nCgogICAgcmV0dXJuICFoYXNCcmlkZ2U7Cn0KCmludCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKCiAgICBpZiAoIShjaW4gPj4gTiA+PiBNKSkgcmV0dXJuIDA7CiAgICBlZGdlcy5yZXNpemUoTSk7CiAgICB2ZWN0b3I8bG9uZyBsb25nPiB3czsKICAgIHdzLnJlc2VydmUoTSk7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IE07ICsraSkgewogICAgICAgIGNpbiA+PiBlZGdlc1tpXS51ID4+IGVkZ2VzW2ldLnYgPj4gZWRnZXNbaV0udzsKICAgICAgICB3cy5wdXNoX2JhY2soZWRnZXNbaV0udyk7CiAgICB9CiAgICBzb3J0KHdzLmJlZ2luKCksIHdzLmVuZCgpKTsKICAgIHdzLmVyYXNlKHVuaXF1ZSh3cy5iZWdpbigpLCB3cy5lbmQoKSksIHdzLmVuZCgpKTsKCiAgICBpZiAod3MuZW1wdHkoKSkgewogICAgICAgIGNvdXQgPDwgKE4gPT0gMSA/IDAgOiAtMSkgPDwgJ1xuJzsKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICAvLyBO4bq/dSBkw7luZyB04bqldCBj4bqjIGPhuqFuaCB24bqrbiBraMO0bmcgxJHGsOG7o2Mg4oaSIC0xCiAgICBpZiAoIW9rKHdzLmJhY2soKSkpIHsKICAgICAgICBjb3V0IDw8IC0xIDw8ICdcbic7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgaW50IGwgPSAwLCByID0gKGludCl3cy5zaXplKCktMSwgYW5zID0gcjsKICAgIHdoaWxlIChsIDw9IHIpIHsKICAgICAgICBpbnQgbWlkID0gKGwgKyByKSAvIDI7CiAgICAgICAgaWYgKG9rKHdzW21pZF0pKSB7IGFucyA9IG1pZDsgciA9IG1pZCAtIDE7IH0KICAgICAgICBlbHNlIGwgPSBtaWQgKyAxOwogICAgfQogICAgY291dCA8PCB3c1thbnNdIDw8ICdcbic7CiAgICByZXR1cm4gMDsKfQ==