바이트랜드 철도청은 철도망을 정비하면서 규모를 줄이려고 합니다. 어떤 역을 남기고 어떤 역을 없앨지는 이미 정해졌고, 이제 유지 비용을 최대한 낮추는 것이 목표입니다. 남은 결정은 어떤 선로 구간을 남기고 어떤 구간을 없앨지 고르는 것입니다.
철도망은 두 역을 잇는 선로 구간들로 이루어져 있습니다. 원래는 어떤 두 역 사이든 (중간 역들을 거쳐서) 오갈 수 있습니다. 모든 선로 구간은 양방향이고, 한 쌍의 역을 잇는 구간은 많아야 하나이며, 각 구간의 유지 비용은 양의 정수입니다.
다음 조건을 만족하도록 선로 구간을 남겨야 합니다.
남긴 선로는 없앨 역을 지나가도 됩니다. 즉 없앨 역도 경로의 중간 지점으로 쓸 수 있습니다. 나머지 구간은 모두 없앱니다.
철도망과 남길 역들의 집합이 주어질 때, 남긴 구간들의 총 유지 비용의 최솟값을 구하세요.
첫 번째 줄에 두 정수 n과 m (2≤n≤100, 1≤m≤2n(n−1))이 주어집니다. n은 역의 수, m은 선로 구간의 수이며, 역은 1부터 n까지 번호가 붙습니다.
이어지는 m개의 줄에는 각각 세 정수 a, b, u (1≤a,b≤n, a=b, 1≤u≤100000)가 주어집니다. 이는 역 a와 역 b를 잇고 유지 비용이 u인 선로 구간을 뜻합니다. 같은 역 쌍을 잇는 구간은 둘 이상 없으며, 철도망은 연결되어 있습니다.
마지막 줄에는 p+1개의 정수가 주어집니다. 첫 번째 수 p (1≤p≤min(n,8))는 남길 역의 수이고, 그 뒤에 남길 역들의 번호가 오름차순으로 주어집니다.
남기기로 한 모든 역이 서로 오갈 수 있도록 선로 구간을 남길 때, 그 총 유지 비용의 최솟값을 정수 하나로 출력하세요. 남긴 구간은 없앨 역을 지나가도 됩니다.
