대회 당일

F에서 C로 가는 최단 단순 경로와 그와 다른 최단 단순 경로를 구해 시간 차이를 출력한다.

어려움8그래프최단 경로그리디동적 계획법아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

Matt, Nick, Tim은 한집에 살면서 함께 프로그래밍 대회에 나간다. 큰 대회가 다가오는데, 최근 C#을 배운 Matt는 실력을 뽐내려고 Nick과 Tim을 상대로 혼자 겨루기로 했다. Nick과 Tim은 둘의 Fortran 95 실력을 합치면 Matt를 이긴다고 자신한다.

Nick은 대회 당일에 Matt의 심리를 흔들려고 Matt와 다른 길로 대회장에 가자고 제안한다. 자기들이 다른 길로 간다는 것을 Matt가 보도록 세 사람은 같은 시각에 집을 나선다. 하지만 Matt는 한발 앞서서 집에서 대회장까지 가장 빠른 경로를 이미 계산해 두었다.

Tim은 같은 풍경에 기름을 낭비하기 싫어해서, 두 사람의 경로는 같은 교차로를 두 번 지나지 않는다. 도로망에는 교차로 NN개와 일방통행 도로 MM개가 있다. 각 도로를 지나는 데 걸리는 시간 TT(분)는 이미 알려져 있다. 집과 대회장은 서로 다른 교차로에 있다.

경로는 집에서 출발해 대회장에서 끝나고, 매 단계마다 도로 하나를 따라가며, 같은 교차로를 두 번 지나지 않는 교차로의 나열이다. Matt는 가장 빠른 경로로 간다. Nick과 Tim은 Matt의 경로를 뺀 나머지 경로 중 가장 빠른 경로로 간다. 서로 다른 두 경로가 모두 최소 시간이면 Nick과 Tim은 다른 하나를 골라 Matt와 같은 시각에 도착하므로 답은 00이다.

Nick과 Tim은 Matt보다 몇 분 늦게 도착할까?

입력

입력은 여러 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에 정수 네 개 NN, MM, FF, CC가 주어진다. (2N80002 \le N \le 8000, 1M80001 \le M \le 8000, 1F,CN1 \le F, C \le N, FCF \ne C) NN은 교차로의 수, MM은 도로의 수, FF는 집이 있는 교차로 번호, CC는 대회장이 있는 교차로 번호이다.

다음 MM개의 줄에 정수 세 개 ii, jj, TT가 주어진다. (1i,jN1 \le i, j \le N, 0<T2×1050 < T \le 2 \times 10^5) 교차로 ii에서 교차로 jj로 가는 일방통행 도로가 있고 지나는 데 TT분이 걸린다는 뜻이다.

자기 자신으로 이어지는 도로는 없고, 같은 교차로 쌍을 같은 방향으로 잇는 도로가 두 개 이상 있지도 않다. FF에서 CC로 가는 경로는 항상 하나 이상 있다.

입력의 마지막 줄은 0 0 0 0이며 테스트 케이스가 아니다.

출력

각 테스트 케이스마다 한 줄씩 출력한다. Nick과 Tim이 Matt보다 몇 분 늦게 도착하는지 출력한다. Matt의 경로가 집에서 대회장으로 가는 유일한 경로라면 대신 Matt wins.를 출력한다.