#include <iostream>
#include <algorithm>
using namespace std;

int main(){
    int G[100][100];
    int n,m,s,g1,g2;
    while(cin>>n>>m>>s>>g1>>g2,n){
        s--; g1--; g2--;
        fill(G[0],G[100],1000000);
        for(int i=0;i<m;i++){
            int b1,b2,c;
            cin>>b1>>b2>>c;
            b1--; b2--;
            G[b1][b2]=c;
        }
        for(int i=0;i<n;i++) G[i][i]=0;
        for(int k=0;k<n;k++){
            for(int i=0;i<n;i++){
                for(int j=0;j<n;j++){
                    if(G[i][j]>G[i][k]+G[k][j])G[i][j]=G[i][k]+G[k][j];
                }
            }
        }
        int ans=1000000;
        for(int i=0;i<n;i++){
            ans=min(ans,G[s][i]+G[i][g1]+G[i][g2]);
        }
        cout<<ans<<endl;
    }
    return 0;}