from itertools import permutations, combinations from heapq import heappush, heappop N, M, K = map(int, input().split()) A = [int(x) - 1 for x in input().split()] T = [list(map(int, input().split())) for _ in range(N)] dists = [[1 << 60] * N for _ in range(N)] for i in range(N): dist = dists[i] dist[i] = 0 hq = [(0, i)] while hq: d, u = heappop(hq) if d > dist[u]: continue for v, t in enumerate(T[u]): if dist[v] > d + t: dist[v] = d + t heappush(hq, (dist[v], v)) ans = 1 << 60 for comb in combinations(range(N), M): for perm in permutations(comb): d = 0 for fr, to in zip(perm, perm[1:]): d += dists[fr][to] mn = 1 << 60 for a in A: mn = min(mn, dists[perm[-1]][a]) ans = min(ans, d + mn) print(ans)