#include<bits/stdc++.h>
using namespace std;
const int N=4e4+10;
int e[N],h[N],nx[N],w[N],cnt,n,m,s,t,d[N];
bool vis[N];
priority_queue<pair<int,int> > q;
void add(int x,int y,int z){
e[++cnt]=y;
nx[cnt]=h[x];
w[cnt]=z;
h[x]=cnt;
return ;
}
int main() {
cin>>n>>m>>s>>t;
for(int i=1;i<=m;i++){
int x,y,z;
cin>>x>>y>>z;
add(x,y,z);
add(y,x,z);
}
memset(d,0x3f,sizeof d);
d[s]=0;
vis[s]=true;
q.push(make_pair(-0,s));
while(q.size()){
int x=q.top().second;
q.pop();
for(int i=h[x];i;i=nx[i]){
int y=e[i];
int z=w[i];
if(d[y]>max(d[x],z)){
d[y]=max(d[x],z);
if(vis[y])continue;
vis[y]=true;
q.push(make_pair(-d[y],y));
}
}
}
cout<<d[t];
}
打模板的蒟蒻
QAQ