#include<iostream>#include<vector>#include<algorithm>usingnamespace std;
vector<int> nodes;intfd(int x){return nodes[x]= nodes[x]== x ? x :fd(nodes[x]);}intmain(){int n, m, root;
cin >> n >> m >> root;for(int i =0; i <= n;++i) nodes.push_back(i);
vector<int>e(3);
vector<vector<int>> edge;while(m--){
cin >> e[2]>> e[1]>> e[0];
edge.push_back(e);}sort(edge.begin(), edge.end());for(int i =0; i < edge.size();++i){int x =fd(edge[i][1]), y =fd(edge[i][2]);if(x != y){if(--n ==1){
cout << edge[i][0]<< endl;break;}
nodes[x]= y;}}return0;}