#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==