#include <fstream>
#include <vector>
#include <cstdlib>
using namespace std;
ifstream in("sate.in");
ofstream out("sate.out");
int n, m, x, y;
vector<pair<int, int>> g[30003]; // vecin, cost
int dist[30003]; // k fata de x, poate fi si neg
bool vizitat[30003];
void dfs(int nod)
{
vizitat[nod] = true;
for (auto p : g[nod])
{
int vecin = p.first;
int cost = p.second;
if(!vizitat[vecin])
{
dist[vecin] = dist[nod] + cost;
dfs(vecin);
}
}
}
int main()
{
in >> n >> m >> x >> y;
for(int k = 1; k <= m; k++)
{
int i, j, d;
in >> i >> j >> d;
g[i].push_back({j, d}); // i < j
g[j].push_back({i, -d});
}
dist[x] = 0;
dfs(x);
out << abs(dist[y]) << "\n"; // y poate fi si la stanga lui x
return 0;
}