#include <fstream>
using namespace std;
int main()
{
ifstream fisier_intrare("sate.in");
ofstream fisier_iesire("sate.out");
int nr_sate, nr_relatii, sat_start, sat_final;
fisier_intrare >> nr_sate >> nr_relatii >> sat_start >> sat_final;
static int relatii[100024][3];
for (int i = 0; i < nr_relatii; i++)
fisier_intrare >> relatii[i][0] >> relatii[i][1] >> relatii[i][2];
static int pozitie[30001];
static bool cunoscut[30001];
cunoscut[sat_start] = true;
bool am_aflat_ceva_nou = true;
while (am_aflat_ceva_nou) {
am_aflat_ceva_nou = false;
for (int i = 0; i < nr_relatii; i++) {
int sat_stanga = relatii[i][0];
int sat_dreapta = relatii[i][1];
int distanta = relatii[i][2];
if (cunoscut[sat_stanga] && !cunoscut[sat_dreapta]) {
pozitie[sat_dreapta] = pozitie[sat_stanga] + distanta;
cunoscut[sat_dreapta] = true;
am_aflat_ceva_nou = true;
}
else if (cunoscut[sat_dreapta] && !cunoscut[sat_stanga]) {
pozitie[sat_stanga] = pozitie[sat_dreapta] - distanta;
cunoscut[sat_stanga] = true;
am_aflat_ceva_nou = true;
}
}
}
int rezultat = pozitie[sat_final];
if (rezultat < 0)
rezultat = -rezultat;
fisier_iesire << rezultat << "\n";
}