N,M,K=map(int,input().split()) A=list(map(int,input().split())) inf=float("inf") T=[[inf]*N for _ in range(N)] for _ in range(M): x,y,z=map(int,input().split()) x-=1; y-=1 T[x][y]=T[y][x]=z # WF for i in range(N): T[i][i]=0 for k in range(N): for i in range(N): for j in range(N): T[i][j]=min(T[i][j], T[i][k]+T[k][j]) DP=[inf]*(1<>x)&1: U.append(x) else: V.append(x) for v in V: L=inf for u in U: L=min(L,T[u][v]) DP[S|(1<