매트릭스

아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

모피어스는 오랜 탐색 끝에 그 사람(The One)을 찾아냈다. 컴퓨터 프로그래머 토머스 A. 앤더슨, 친구들에게는 네오라고 불리는 사람이다. 오라클을 만나고 돌아오는 길에 모피어스는 먼저 현실 세계로 빠져나갔지만, 네오가 전화기를 들기 전에 요원이 그 전화기를 부쉈다. 아직 힘을 다 깨우지 못한 네오는 요원과 싸우지 않고 다른 전화기까지 달려가야 한다.

매트릭스 세계에는 장소가 NN개 있고, 네오는 00번 장소에 서 있다. 서로 다른 장소를 잇는 길이 MM개 있고, 각 길은 양방향이며 지나가는 데 정해진 시간이 걸린다. 요원 몇 명과 전화기 몇 대의 위치를 알고 있다.

요원이 어떻게 움직일지 모르므로 최악을 가정한다. 어떤 요원이 장소 vv까지 최소 DvD_v분에 도달한다면, 시각 DvD_v부터는 vv에 요원이 서 있을 수 있다. 그래서 네오는 도착 시각이 DvD_v보다 작은 장소만 지날 수 있다. 도착 시각이 정확히 DvD_v인 경우도 마주치는 것으로 본다. 전화기가 있는 장소에도 같은 규칙이 적용된다. 네오와 요원이 전화기에 동시에 닿으면 네오는 전화기를 들기 전에 요원과 싸운다.

네오는 시각 0000번 장소에서 출발하고 도중에 멈추지 않는다. 안전하게 닿을 수 있는 전화기가 있으면 그중 가장 이른 도착 시각을 구하고, 하나도 없으면 그 사실을 알려라.

입력

첫 줄에 테스트 케이스의 개수 TT (1T1001 \le T \le 100)가 주어진다.

각 테스트 케이스의 첫 줄에는 정수 네 개 NN, MM, NANA, NTNT가 주어진다. NN은 장소의 수, MM은 길의 수, NANA는 요원의 수, NTNT는 전화기의 수다. (3N10003 \le N \le 1000, 1M1000001 \le M \le 100000, NA>0NA > 0, NT>0NT > 0, NA+NT<N1NA + NT < N - 1)

다음 MM개의 줄에는 정수 세 개 uu, vv, mm이 주어진다 (0u,v<N0 \le u, v < N, 1m301 \le m \le 30). 장소 uu와 장소 vv를 잇는 길이 있고, 그 길을 지나는 데 mm분이 걸린다는 뜻이다. 같은 두 장소를 잇는 길이 여러 개일 수 있고, uuvv가 같을 수도 있다.

다음 줄에는 요원의 위치 NANA개가 주어진다.

마지막 줄에는 전화기의 위치 NTNT개가 주어진다.

00번 장소에는 요원도 전화기도 없다. 요원과 전화기가 함께 있는 장소도 없다. 모든 테스트 케이스의 NN의 합은 2000020000 이하이고, MM의 합은 200000200000 이하다.

출력

각 테스트 케이스마다 한 줄씩 출력한다. 안전하게 닿을 수 있는 전화기가 없으면 Neo may fight an Agent를 출력한다. 있으면 매트릭스에서 빠져나가는 데 걸리는 최소 시간을 분 단위 정수로 출력한다.