from heapq import heappop, heappush n, m, k = map(int, input().split()) R = list(map(int, input().split())) Rset = set(R) edge = [[] for _ in range(n + 1)] for i in range(1, m + 1): a, b, c = map(int, input().split()) edge[a].append((b, c, i)) edge[b].append((a, c, i)) H = [(0, 1, set())] while H: res, curr, road = heappop(H) if road == Rset and curr == n: print(res) break for np, nc, idx in edge[curr]: nroad = road.copy() if idx in Rset: nroad.add(idx) heappush(H, (res + nc, np, nroad))