#if __has_include() #include using namespace atcoder; #else #include #if __has_include() #include using namespace atcoder; #endif #endif using namespace std; #define int long long #define all(x) (x).begin(), (x).end() #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define rrep(i, n) for(int i = (int)((n) - 1); i >= 0; i--) template bool chmax(T &a,const T &b){if(a bool chmin(T &a,const T &b){if(a>b){a=b;return true;}return false;} // using mint = modint; signed main(){ int n, m; cin >> n >> m; vector> uvh(m); for(auto&& [u, v, h] : uvh) cin >> u >> v >> h, u--, v--; int ok = 0, ng = 1000000001; while(ng - ok > 1){ int mid = (ok + ng) / 2; dsu d(n); for(auto [u, v, h] : uvh) if(h >= mid) d.merge(u, v); (d.same(0, n - 1) ? ok : ng) = mid; } if(ok == 0){ println("NaN"); return 0; } println("{}", ok); }