#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; const int INF = 1<<28; int main() { int n , m , s , g1 , g2; while(cin>>n>>m>>s>>g1>>g2 && (n||m||s||g1||g2)) { int dat[n][n]; for(int i = 0 ; i < n ;i ++) fill(dat[i] , dat[i] + n , INF); for(int i = 0 ; i < m ; i++) { int b1,b2,c; cin >> b1 >> b2 >> c; dat[b1-1][b2-1] = c ; } for(int i = 0 ; i < n ; i++) dat[i][i] = 0 ; for(int i = 0 ; i < n ; i++) for(int j = 0 ; j < n ; j++) if(dat[j][i]!=INF) for(int k = 0 ; k < n ; k++) { dat[j][k]