import heapq N,M,L,S,E = map(int, input().split()) G = {i:[] for i in range(1,N+1)} for _ in range(M): a,b,c = map(int, input().split()) G[a].append((b,c)) G[b].append((a,c)) T = list(map(int, input().split())) INFTY = 10**15 DF = [INFTY]*(N+1) DF[1] = 0 heap = [(0,1)] while heap: d,v = heapq.heappop(heap) if DF[v]d+c: DF[w] = d+c heapq.heappush(heap,(DF[w],w)) DG = [INFTY]*(N+1) DG[N] = 0 heap = [(0,N)] while heap: d,v = heapq.heappop(heap) if DG[v]d+c: DG[w] = d+c heapq.heappush(heap,(DG[w],w)) ans = INFTY for t in T: if DF[t]