from collections import deque N,M,K=map(int,input().split()) A=set(map(lambda x:int(x)-1,input().split())) T=[list(map(int,input().split())) for _ in range(N)] G=[[] for _ in range(N)] for i in range(N): for j in range(i+1,N): if i==j:continue G[i].append(j) G[j].append(i) ans=1<<60 for s in range(N): vis=[0 for _ in range(N)] Q=deque([(s,0,0,tuple(vis))]) while Q: now,cnt,t,vis=Q.popleft() vis=list(vis) if vis[now]==0: cnt+=1 vis[now]=1 if cnt>=M and now in A: ans=min(ans,t) continue for nxt in G[now]: if cntans:continue Q.append((nxt,cnt,t+T[now][nxt],tuple(vis))) print(ans)