#include<iostream>
using namespace std;

int main()
{
  int n,m,s,g1,g2,a,b,cost,mi;
  int map[101][101];
  while(1){
    cin>>n>>m>>s>>g1>>g2;
    if(n==0 && m==0 && s==0 && g1==0 && g2==0)break;
    for(int i=0;i<n+1;i++){
      for(int j=0;j<n+1;j++){
	if(i==j)map[i][j]=0;
	else map[i][j]=1000000;
      }
    }
    for(int i=0;i<m;i++){
      cin>>a>>b>>cost;
      map[a-1][b-1]=cost;
    }
    for(int i=0;i<n;i++){
      for(int j=0;j<n;j++){
	for(int k=0;k<n;k++){
	  map[j][k]=min(map[j][k],map[j][i]+map[i][k]);
	}
      }
    }
    mi=1000000;
    for(int i=0;i<n;i++)mi=min(mi,map[s-1][i]+map[i][g1-1]+map[i][g2-1]);
    cout<<mi<<endl;
  }
  return 0;
}