동기화 노드 선정
분산 기록 시스템에는 1번부터 N번까지 번호가 붙은 노드가 있다. 노드 사이에는 M개의 단방향 전송 채널이 있으며, 어떤 두 노드 사이의 전송 시간은 방향에 따라 다를 수 있다.
K개의 시작 노드가 주어진다. 시스템은 하나의 동기화 노드 X를 선택해, 각 시작 노드가 X로 자료를 보낸 뒤 다시 자기 위치로 결과를 돌려받게 하려고 한다.
어떤 시작 노드의 왕복 시간은 그 시작 노드에서 X까지 가는 최소 시간과 X에서 그 시작 노드까지 돌아가는 최소 시간을 더한 값이다. 동기화 노드 X는 모든 시작 노드에 대해 왕복 경로가 존재해야 한다.
가능한 X 중에서, K개의 왕복 시간 중 최댓값이 최소가 되는 노드를 모두 구하시오. 조건을 만족하는 노드가 적어도 하나 존재함은 보장된다.
입력
첫 번째 줄에는 노드의 개수 N과 전송 채널의 개수 M이 주어진다.
두 번째 줄부터 M+1번째 줄까지는 세 정수 Ai, Bi, Ti가 공백으로 구분되어 주어진다. 이는 Ai번 노드에서 Bi번 노드로 전송하는 데 Ti의 시간이 걸리는 단방향 채널이 있음을 의미한다.
M+2번째 줄에는 시작 노드의 개수 K가 주어진다.
M+3번째 줄에는 K개의 시작 노드 번호 Ci가 공백으로 구분되어 주어진다.
출력
조건을 만족하는 동기화 노드 X의 번호를 출력한다. 가능한 노드가 여러 개라면 번호를 오름차순으로 출력한다.
제한
- 3 ≤ N ≤ 200
- 2 ≤ K ≤ N
- 1 ≤ M ≤ N * (N - 1)
- 1 ≤ Ci ≤ N
- 1 ≤ Ti ≤ 1,000
예제 입력 1
4 9
1 2 9
2 3 9
3 1 9
1 4 1
4 1 1
2 4 1
4 2 1
3 4 1
4 3 1
3
1 2 3
예제 출력 1
4
예제 입력 2
3 3
1 2 1
2 3 1
3 1 1
2
1 2
예제 출력 2
1 2 3