#include <bits/stdc++.h>
#define NMAX 10005
using namespace std;
struct edge{
int u;
int v;
int w;
};
edge graph[NMAX];
int n,m,s,t,minimum=INT_MAX;
struct create{
int len;
vector<int> DSU,sizeDSU;
create(int _n):len(_n),DSU(len+1),sizeDSU(len+1,1)
{
for(int i=1;i<=len;i++)
{
DSU[i]=i;
}
};
int find_root(int u)
{
return (DSU[u]==u)?u:DSU[u]=find_root(DSU[u]);
}
bool join(int u ,int v)
{
int root_u=find_root(u);
int root_v=find_root(v);
if(root_u==root_v)
{
return false;
}
if(sizeDSU[root_u]<sizeDSU[root_v])
{
swap(root_u,root_v);
}
DSU[root_v]=root_u;
sizeDSU[root_u]+=sizeDSU[root_v];
return true;
}
bool check(int u ,int v)
{
return (find_root(u)==find_root(v))?1:0;
}
};
void process()
{
cin>>n>>m>>s>>t;
create dsu(n);
for(int i=0;i<m;i++)
{
cin>>graph[i].u>>graph[i].v>>graph[i].w;
}
sort(graph,graph+m,[](edge &a,edge&b){ return a.w>b.w;});
for(int i=0;i<m;i++)
{
if(!dsu.check(s,t)&&dsu.join(graph[i].u,graph[i].v))
{
minimum=graph[i].w;
}
}
cout<<minimum;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
freopen("TAITRONG.INP","r",stdin);
freopen("TAITRONG.OUT","w",stdout);
process();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgTk1BWCAxMDAwNQp1c2luZyBuYW1lc3BhY2Ugc3RkOwpzdHJ1Y3QgZWRnZXsKICAgICBpbnQgdTsKICAgICBpbnQgdjsKICAgICBpbnQgdzsKfTsKZWRnZSBncmFwaFtOTUFYXTsKaW50IG4sbSxzLHQsbWluaW11bT1JTlRfTUFYOwpzdHJ1Y3QgY3JlYXRlewogICAgaW50IGxlbjsKICAgIHZlY3RvcjxpbnQ+IERTVSxzaXplRFNVOwogICAgY3JlYXRlKGludCBfbik6bGVuKF9uKSxEU1UobGVuKzEpLHNpemVEU1UobGVuKzEsMSkKICAgIHsKICAgICAgICBmb3IoaW50IGk9MTtpPD1sZW47aSsrKQogICAgICAgIHsKICAgICAgICAgICAgRFNVW2ldPWk7CiAgICAgICAgfQogICAgfTsKICAgIGludCBmaW5kX3Jvb3QoaW50IHUpCiAgICB7CiAgICAgICAgcmV0dXJuIChEU1VbdV09PXUpP3U6RFNVW3VdPWZpbmRfcm9vdChEU1VbdV0pOwogICAgfQogICAgYm9vbCBqb2luKGludCB1ICxpbnQgdikKICAgIHsKICAgICAgICBpbnQgcm9vdF91PWZpbmRfcm9vdCh1KTsKICAgICAgICBpbnQgcm9vdF92PWZpbmRfcm9vdCh2KTsKICAgICAgICBpZihyb290X3U9PXJvb3RfdikKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgaWYoc2l6ZURTVVtyb290X3VdPHNpemVEU1Vbcm9vdF92XSkKICAgICAgICB7CiAgICAgICAgICAgIHN3YXAocm9vdF91LHJvb3Rfdik7CiAgICAgICAgfQogICAgICAgIERTVVtyb290X3ZdPXJvb3RfdTsKICAgICAgICBzaXplRFNVW3Jvb3RfdV0rPXNpemVEU1Vbcm9vdF92XTsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICAgIGJvb2wgY2hlY2soaW50IHUgLGludCB2KQogICAgewogICAgICAgIHJldHVybiAoZmluZF9yb290KHUpPT1maW5kX3Jvb3QodikpPzE6MDsKICAgIH0KfTsKdm9pZCBwcm9jZXNzKCkKewogICAgIGNpbj4+bj4+bT4+cz4+dDsKICAgICBjcmVhdGUgZHN1KG4pOwogICAgIGZvcihpbnQgaT0wO2k8bTtpKyspCiAgICAgewogICAgICAgICBjaW4+PmdyYXBoW2ldLnU+PmdyYXBoW2ldLnY+PmdyYXBoW2ldLnc7CiAgICAgfQogICAgIHNvcnQoZ3JhcGgsZ3JhcGgrbSxbXShlZGdlICZhLGVkZ2UmYil7IHJldHVybiBhLnc+Yi53O30pOwogICAgIGZvcihpbnQgaT0wO2k8bTtpKyspCiAgICAgewogICAgICAgICBpZighZHN1LmNoZWNrKHMsdCkmJmRzdS5qb2luKGdyYXBoW2ldLnUsZ3JhcGhbaV0udikpCiAgICAgICAgIHsKICAgICAgICAgICAgIG1pbmltdW09Z3JhcGhbaV0udzsKICAgICAgICAgfQogICAgIH0KICAgICBjb3V0PDxtaW5pbXVtOwp9CmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7CiAgICBjb3V0LnRpZSgwKTsKICAgIGZyZW9wZW4oIlRBSVRST05HLklOUCIsInIiLHN0ZGluKTsKICAgIGZyZW9wZW4oIlRBSVRST05HLk9VVCIsInciLHN0ZG91dCk7CiAgICBwcm9jZXNzKCk7CiAgICByZXR1cm4gMDsKfQo=