#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const ll N = 1e5 +10;
int pre[N];
struct xiulu{
int x,y,t;
}a[N];
int cmp(const xiulu &a,const xiulu &b){return a.t < b.t;}
//cmp代表compare,比较a与b的z,返回z更小的
int root(int x){
return pre[x] = (pre[x] == x ? x : root(pre[x]) );
}
void merge(int x,int y){
pre[root(x)] = root(y);
}
int main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int n,m;
cin >> n >> m;
for(int i = 1; i <= m; i++){
pre[i] = i;
cin >> a[i].x >> a[i].y >> a[i].t;
}
sort(a+1,a+m+1,cmp);
for(int i = 1; i <= m; i++){
if(root(a[i].x) != root(a[i].y))
{
merge(a[i].x,a[i].y);
n--;
}
//4个村庄但只用连3条路
if(n == 1) {
cout << a[i].t << '\n';
return 0;
}
}
cout << "-1" << '\n';
return 0;
}
用到了cmp,struct,并查集