#include <bits/stdc++.h>
using namespace std;
int main(){
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
int n,m,x,y;
scanf("%d %d %d %d",&n,&m,&x,&y);
vector<vector<pair<int,int>>> g(n+1);
for(int k=0;k<m;k++){
int i,j,d;
scanf("%d %d %d",&i,&j,&d);
g[i].push_back({j,d});
g[j].push_back({i,-d});
}
vector<long long> pos(n+1,0);
vector<char> vis(n+1,0);
queue<int> q;
q.push(x);
vis[x]=1;
pos[x]=0;
while(!q.empty() && !vis[y]){
int u=q.front(); q.pop();
for(auto &e:g[u]){
int v=e.first;
if(!vis[v]){
vis[v]=1;
pos[v]=pos[u]+e.second;
q.push(v);
}
}
}
printf("%lld\n", llabs(pos[y]-pos[x]));
return 0;
}