#include int Ways[50002]; long Count[10002], Next[10002], Cost[50002]; long pomField[10002][3]; long Value[10002], N, Begin, End, pom, ind, pom1, pom2, Roads, Max; short int Temp[10002], Found; int main(){ Max=60000000; scanf("%ld%ld%ld%ld",&N,&Roads,&Begin,&End); while((N!=0) && (Roads!=0) && (Begin!=0) && (End!=0)) { for (pom=1; pom<=N; pom++) { Value[pom]=Max; Temp[pom]=1; Count[pom]=0; } for (pom=1; pom<=Roads; pom++) { scanf("%ld%ld%ld",&pomField[pom][0],&pomField[pom][1],&pomField[pom][2]); Count[pomField[pom][0]]+=1; } ind=1; for(pom=1; pom<=N; pom++) { pom1=1; pom2=0; while (pom2