비밀 모임

가중 무향 그래프와 K명의 친구가 있는 방이 주어질 때, 모든 친구로부터의 최단 경로 거리 합을 최소로 하는 방을 고르고, 동률이면 방 번호가 가장 작은 것을 출력한다.

보통4최단 경로그래프완전 탐색면접 대비아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

해리와 친구들은 엄브릿지의 감시를 피해 어둠의 마법 방어술을 연습할 비밀 모임을 열려고 한다. 모임 장소는 가짜 갈레온으로 전한다. 해리가 자기 갈레온에 장소를 적으면 친구들이 가진 갈레온에 같은 장소가 나타난다.

호그와트에는 모임에 쓸 만한 방이 NN개 있다. 방마다 1번부터 NN번까지 번호가 하나씩 붙어 있고 같은 번호는 없다. 방은 마법으로 만든 비밀통로 MM개로 이어져 있다. 비밀통로는 모두 양방향으로 지나갈 수 있고 길이는 자연수다. 모임에 참여하는 친구는 KK명이다.

해리는 NN개의 방 가운데 한 곳을 오늘 모임 장소로 정한다. 장소를 정하기 전에 호그와트 비밀지도로 확인해 보니 친구들은 서로 다른 방에 한 명씩 있었다. 호그와트 안에서는 순간이동이 금지되어 있어서 친구들은 들키지 않도록 비밀통로만 이용해 모임 장소로 간다. 이때 각자 처음 있던 방에서 모임 장소까지 이동 거리가 가장 짧은 경로만 이용한다. 이동 거리는 지나간 비밀통로 길이의 합이다.

해리는 친구들의 이동 거리의 총합이 가장 작아지는 방을 오늘의 모임 장소로 쓰기로 했다. 아래 그림은 N=6N = 6, M=7M = 7, K=2K = 2인 경우의 예시다.

정점에 적힌 숫자는 방 번호이고, 간선에 적힌 숫자는 두 방을 잇는 비밀통로의 길이다. 모임에 참석하는 두 친구는 3번 방과 5번 방에 있다. 모임 장소를 2번 방으로 정하면 3번 방에 있는 친구 A는 3번, 2번 순으로 가서 이동 거리가 2이고, 5번 방에 있는 친구 B는 5번, 1번, 3번, 2번 순으로 가서 이동 거리가 5이다. 두 친구의 이동 거리의 총합은 7이다. 1번 방으로 정하면 친구 A의 이동 거리는 1, 친구 B의 이동 거리는 2가 되어 총합은 3이다. 이 예시에서는 1번, 3번, 5번 방 가운데 어디를 골라도 총합이 3으로 가장 작다.

해리가 가짜 갈레온에 오늘의 모임 장소를 적으면 친구 KK명은 그 사실을 곧바로 알고 하던 일을 멈춘 뒤 그 방으로 출발한다. 친구들의 이동 거리의 총합이 가장 작아지는 모임 장소를 찾아 출력하는 프로그램을 작성하시오.

입력

입력은 표준 입력으로 받는다. 첫째 줄에 테스트 케이스의 개수 TT가 주어진다.

각 테스트 케이스의 첫째 줄에는 방의 개수 NN과 비밀통로의 개수 MM이 공백으로 구분되어 주어진다 (2N1002 \le N \le 100, N1MN(N1)/2N - 1 \le M \le N(N-1)/2). 이어지는 MM개의 줄에는 비밀통로 정보 aa, bb, cc가 주어진다. aabb는 그 통로가 잇는 두 방의 번호이고, cc는 통로의 길이다. aabb는 항상 다르고, cc는 1 이상 1000 이하의 자연수다. 두 방을 잇는 비밀통로는 많아야 하나이며, 같은 통로 정보가 두 번 주어지지 않는다. 어느 방에서 어느 방으로도 비밀통로만으로 갈 수 있다.

그다음 줄에는 모임에 참여하는 친구의 수 KK가 주어진다 (1KN1 \le K \le N). 각 테스트 케이스의 마지막 줄에는 친구들이 있는 방 번호 KK개가 공백으로 구분되어 주어진다. 방 번호는 1번부터 NN번 사이이고 서로 다르다. 즉 한 방에 두 명 이상이 있는 경우는 주어지지 않는다.

출력

출력은 표준 출력으로 한다. 각 테스트 케이스마다 친구들의 이동 거리의 총합이 가장 작아지는 방의 번호를 입력 순서대로 한 줄에 하나씩 출력한다. 그런 방이 여러 개면 번호가 가장 작은 방을 출력한다.