import sys input = sys.stdin.readline import heapq N,M,K=map(int,input().split()) R=list(map(int,input().split())) EX=[tuple(map(int,input().split())) for i in range(M)] E=[[] for i in range(N+1)] for a,b,c in EX: E[a].append((b,c)) E[b].append((a,c)) for i in range(K): R[i]-=1 def dijk(x): DIS=[1<<63]*(N+1) Q=[(0,x)] DIS[x]=0 while Q: time,now=heapq.heappop(Q) if DIS[now]DIS[now]+cost: DIS[to]=DIS[now]+cost heapq.heappush(Q,(DIS[to],to)) return DIS DIST=[[] for i in range(N+1)] DIST[1]=dijk(1) DIST[N]=dijk(N) R2=[] for i in range(K): r=R[i] x,y,cc=EX[r] R2.append((x,y,cc)) DIST[x]=dijk(x) DIST[y]=dijk(y) #print(DIST) DP=[[1<<63]*(1<DP[now][b]+DIST[now][x]+c: DP[y][b|(1<DP[now][b]+DIST[now][y]+c: DP[x][b|(1<