#include<bits/stdc++.h>
using namespace std;
int n,m,s,t;
int g[2550][2550];
int dist[2550];
bool st[2550];
int dijstra()
{
for(int i=1;i<=n;i++)
{
dist[i]=0x3f;
st[i]=0;
}
dist[s]=0;
st[s]=1;
for(int i=1;i<=n;i++)
{
int h=-1;
for(int j=1;j<=n;j++)
{
if(!st[j]&&(h==-1||dist[j]<dist[h]))
{
h=j;
}
}
st[h]=1;
for(int j=1;j<=n;j++)
{
if(dist[h]>dist[j]+g[j][h])
{
dist[h]=dist[j]+g[j][h];
}
}
}
return dist[t];
}
int main()
{
cin>>n>>m>>s>>t;
int u,v,w;
for(int i=1;i<=m;i++)
{
cin>>u>>v>>w;
g[u][v]=min(g[u][v],w);
g[v][u]=min(g[v][u],w);
}
cout<<dijstra();
return 0;
}