#include <bits/stdc++.h>
using namespace std;
using namespace std;
bool compare(pair<int, int> a, pair<int, int> b) {
  if (a.first == b.first) {
    return a.second < b.second;
  }
  return a.first < b.first;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int vis1[10001];
  int vis2[10001];
  memset(vis1, 0, sizeof(vis1));
  memset(vis2, 0, sizeof(vis2));
  int n, m;
  cin >> n >> m;
  vector<pair<int, pair<int, int> > > vec;
  for (int i = 0; i < m; ++i) {
    int u, v, w;
    cin >> u >> v >> w;
    vec.push_back({w, {u, v}});
  }
  sort(vec.begin(), vec.end());
  bool flag = false;
  int ans;
  int cnt1 = 0, cnt2 = 0;
  for (int i = 0; i < m; ++i) {
    int u = vec[i].second.first;
    int v = vec[i].second.second;
    if (vis1[u] == 0) {
      cnt1++;
      vis1[u] = 1;
    }
    if (vis2[v] == 0) {
      cnt2++;
      vis2[v] = 1;
    }
    if (cnt1 == n && cnt2 == n) {
      flag = true;
      ans = vec[i].first;
      break;
    }
  }
  if (flag) {
    cout << ans;
  } else {
    cout << -1;
  }
}
