#include <vector>
#include <fstream>
using namespace std;
bool dfs(int nod, int y, vector<vector<pair<int, int>>>& lista, vector<int>& visited, int& suma) {
if (nod == y) {
return true;
}
visited[nod] = 1;
for (auto vecin : lista[nod]) {
int nodVecin = vecin.first;
int dist = vecin.second;
if (!visited[nodVecin]) {
suma += dist;
if (dfs(nodVecin, y, lista, visited, suma)) {
return true;
}
suma -= dist;
}
}
return false;
}
int main() {
ifstream in("sate.in");
ofstream out("sate.out");
int n, m, x, y, i, j, d, suma;
in >> n >> m >> x >> y;
vector<vector<pair<int, int>>> lista(n + 1);
vector<int> visited(n + 1, 0);
while (in >> i >> j >> d){
lista[i].push_back({j, d});
lista[j].push_back({i, -d});
}
in.close();
suma = 0;
dfs(x, y, lista, visited, suma);
out << suma;
out.close();
return 0;
}