func_code_string: #include <bits/stdc++.h>   using namespace std;   long long U[10001], V[10000], dis[10000];   long long n, m;   vector<long long> adj[10001];   bool bfs() {     queue<long long> q;     for (long long i = 1; i <= n; i++) {       if (U[i] == 0) {         dis[i] = 0;         q.push(i);       } else         dis[i] = INT_MAX;     }     dis[0] = INT_MAX;     while (!q.empty()) {       long long x = q.front();       q.pop();       if (dis[x] < dis[0]) {         for (long long j = 0; j < adj[x].size(); j++) {           if (dis[V[adj[x][j]]] == INT_MAX) {             dis[V[adj[x][j]]] = dis[x] + 1;             q.push(V[adj[x][j]]);           }         }       }     }     return (dis[0] != INT_MAX);   }   bool dfs(long long u) {     if (u != 0) {       for (long long j = 0; j < adj[u].size(); j++) {         if (dis[V[adj[u][j]]] == (dis[u] + 1)) {           if (dfs(V[adj[u][j]])) {             V[adj[u][j]] = u;             U[u] = adj[u][j];             return true;           }         }       }       dis[u] = INT_MAX;       return false;     }     return true;   }   long long hopcroft() {     for (long long i = 0; i <= 10000; i++) {       U[i] = 0;       V[i] = 0;     }     long long ans = 0;     while (bfs()) {       for (long long u = 1; u <= n; u++) {         if (U[u] == 0 && dfs(u)) ans++;       }     }     return ans;   }   void solve() {     cin >> n >> m;     vector<pair<long long, pair<long long, long long> > > edges;     for (long long i = 0; i < m; i++) {       long long a, b, c;       cin >> a >> b >> c;       edges.push_back({c, {a, b}});     }     long long l = 0, r = 1000000000, f = -1;     while (l <= r) {       long long mid = (l + r) / 2;       for (long long i = 1; i <= n; i++) adj[i].clear();       for (auto x : edges) {         if (x.first <= mid) {           adj[x.second.first].push_back(x.second.second);         }       }       if (hopcroft() == n) {         r = mid - 1;         f = mid;       } else         l = mid + 1;     }     cout << f <<   n ;   }   signed main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     long long test = 0, t;     t = 1;     while (test++ < t) {       solve();     }   }   