철도망

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

문제

바이트랜드 철도청은 철도망을 정비하면서 규모를 줄이려고 합니다. 어떤 역을 남기고 어떤 역을 없앨지는 이미 정해졌고, 이제 유지 비용을 최대한 낮추는 것이 목표입니다. 남은 결정은 어떤 선로 구간을 남기고 어떤 구간을 없앨지 고르는 것입니다.

철도망은 두 역을 잇는 선로 구간들로 이루어져 있습니다. 원래는 어떤 두 역 사이든 (중간 역들을 거쳐서) 오갈 수 있습니다. 모든 선로 구간은 양방향이고, 한 쌍의 역을 잇는 구간은 많아야 하나이며, 각 구간의 유지 비용은 양의 정수입니다.

다음 조건을 만족하도록 선로 구간을 남겨야 합니다.

  • 남기기로 한 모든 역끼리는 여전히 서로 오갈 수 있어야 하고,
  • 남긴 구간들의 총 유지 비용이 가능한 한 작아야 합니다.

남긴 선로는 없앨 역을 지나가도 됩니다. 즉 없앨 역도 경로의 중간 지점으로 쓸 수 있습니다. 나머지 구간은 모두 없앱니다.

철도망과 남길 역들의 집합이 주어질 때, 남긴 구간들의 총 유지 비용의 최솟값을 구하세요.

입력

첫 번째 줄에 두 정수 nnmm (2n1002 \le n \le 100, 1mn(n1)21 \le m \le \frac{n(n-1)}{2})이 주어집니다. nn은 역의 수, mm은 선로 구간의 수이며, 역은 11부터 nn까지 번호가 붙습니다.

이어지는 mm개의 줄에는 각각 세 정수 aa, bb, uu (1a,bn1 \le a, b \le n, aba \ne b, 1u1000001 \le u \le 100000)가 주어집니다. 이는 역 aa와 역 bb를 잇고 유지 비용이 uu인 선로 구간을 뜻합니다. 같은 역 쌍을 잇는 구간은 둘 이상 없으며, 철도망은 연결되어 있습니다.

마지막 줄에는 p+1p + 1개의 정수가 주어집니다. 첫 번째 수 pp (1pmin(n,8)1 \le p \le \min(n, 8))는 남길 역의 수이고, 그 뒤에 남길 역들의 번호가 오름차순으로 주어집니다.

출력

남기기로 한 모든 역이 서로 오갈 수 있도록 선로 구간을 남길 때, 그 총 유지 비용의 최솟값을 정수 하나로 출력하세요. 남긴 구간은 없앨 역을 지나가도 됩니다.

힌트