#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ld long double
#define eb emplace_back
#define pb push_back
#define fi first
#define se second
#define nn '\n'
#define pi pair<int, int>
#define unmp unordered_map
#define uns unordered_set
#define lb lower_bound
#define ub upper_bound
#define pq priority_queue
#define TASK " "
const int INF = 1e18;
const int mod = 1e9+7;
const int N = 1e5 + 5;
int MOD = 998244353;
int bit[200000];
int n, m;
vector<pair<int, int>> adj[N];
int a[5];
int kq = -INF;
void nhap(){
cin >> n;
for(int i = 1; i <= 4; i++){
cin >> a[i];
}
int x, y, w;
while(cin >> x >> y >> w){
adj[x].eb( y, w );
adj[y].eb( x, w );
}
}
void dijkstra(int s){
vector<int> d(n + 1, INF);
d[s] = 0;
priority_queue<pi, vector<pi> , greater<pi>> q;
q.push({0, s});
while(!q.empty()){
pair<int, int> top = q.top(); q.pop();
int u = top.second;
int kc = top.first;
if(kc > d[u]) continue;
for( auto it : adj[u]){
int v = it.first;
int w = it.second;
if (d[v] > d[u] + w) {
d[v] = d[u] + w;
q.push({d[v], v});
}
}
}
for(int i = 1 ; i <= 4; i++){
// kq = max(kq, d[a[i]]);
cout << d[ a[i] ] << " ";
}
// cout << kq << nn;
}
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
nhap();
dijkstra(a[1]);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBlYiBlbXBsYWNlX2JhY2sKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIG5uICdcbicKI2RlZmluZSBwaSBwYWlyPGludCwgaW50PgojZGVmaW5lIHVubXAgdW5vcmRlcmVkX21hcAojZGVmaW5lIHVucyB1bm9yZGVyZWRfc2V0CiNkZWZpbmUgbGIgbG93ZXJfYm91bmQKI2RlZmluZSB1YiB1cHBlcl9ib3VuZAojZGVmaW5lIHBxIHByaW9yaXR5X3F1ZXVlCiNkZWZpbmUgVEFTSyAiICIKCmNvbnN0IGludCBJTkYgPSAxZTE4Owpjb25zdCBpbnQgbW9kID0gMWU5Kzc7CmNvbnN0IGludCBOID0gMWU1ICsgNTsKaW50IE1PRCA9IDk5ODI0NDM1MzsKaW50IGJpdFsyMDAwMDBdOwppbnQgbiwgbTsKdmVjdG9yPHBhaXI8aW50LCBpbnQ+PiBhZGpbTl07CmludCBhWzVdOwppbnQga3EgPSAtSU5GOwp2b2lkIG5oYXAoKXsKICAgIGNpbiA+PiBuOwogICAgZm9yKGludCBpID0gMTsgaSA8PSA0OyBpKyspewogICAgICAgIGNpbiA+PiBhW2ldOwogICAgfQogICAgaW50IHgsIHksIHc7CiAgICB3aGlsZShjaW4gPj4geCA+PiB5ID4+IHcpewogICAgICAgIGFkalt4XS5lYiggeSwgdyApOwogICAgICAgIGFkalt5XS5lYiggeCwgdyApOwogICAgfQp9CnZvaWQgZGlqa3N0cmEoaW50IHMpewogICAgdmVjdG9yPGludD4gZChuICsgMSwgSU5GKTsKICAgIGRbc10gPSAwOwogICAgcHJpb3JpdHlfcXVldWU8cGksIHZlY3RvcjxwaT4gLCBncmVhdGVyPHBpPj4gcTsKICAgIHEucHVzaCh7MCwgc30pOwogICAgd2hpbGUoIXEuZW1wdHkoKSl7CiAgICAgICAgcGFpcjxpbnQsIGludD4gdG9wID0gcS50b3AoKTsgcS5wb3AoKTsKICAgICAgICBpbnQgIHUgPSB0b3Auc2Vjb25kOwogICAgICAgIGludCBrYyA9IHRvcC5maXJzdDsKICAgICAgICBpZihrYyA+IGRbdV0pIGNvbnRpbnVlOwoKICAgICAgICBmb3IoIGF1dG8gaXQgOiBhZGpbdV0pewogICAgICAgICAgICBpbnQgdiA9IGl0LmZpcnN0OwogICAgICAgICAgICBpbnQgdyA9IGl0LnNlY29uZDsKCiAgICAgICAgICAgIGlmIChkW3ZdID4gZFt1XSArIHcpIHsKICAgICAgICAgICAgICAgICBkW3ZdID0gZFt1XSArIHc7CiAgICAgICAgICAgICAgICAgcS5wdXNoKHtkW3ZdLCB2fSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgfQogICAgZm9yKGludCBpID0JMSA7IGkgPD0gNDsgaSsrKXsKICAgICAgICAvLyBrcSA9IG1heChrcSwgZFthW2ldXSk7CiAgICAgICAgY291dCA8PCBkWyBhW2ldIF0gPDwgIiAiOwogICAgfQogICAgLy8gY291dCA8PCBrcSA8PCBubjsKfQpzaWduZWQgbWFpbigpewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7CiAgICBjb3V0LnRpZSgwKTsKICAgIG5oYXAoKTsKICAgIGRpamtzdHJhKGFbMV0pOwogICAgcmV0dXJuIDA7Cn0K