from collections import deque, defaultdict, Counter from bisect import bisect_left, bisect_right from atcoder.fenwicktree import FenwickTree from atcoder.segtree import SegTree from atcoder.lazysegtree import LazySegTree from atcoder.string import suffix_array, z_algorithm, lcp_array from atcoder.dsu import DSU from itertools import permutations, combinations, groupby from functools import cache from heapq import heappop, heappush import math, sys input = lambda: sys.stdin.readline().rstrip("\r\n") _int = lambda x: int(x)-1 MOD = 998244353 #10**9+7 INF = 1<<60 Yes, No = "Yes", "No" A = input() K = len(A) D = [list(map(int, input().split())) for _ in range(K)] pos = {x: e for e, x in enumerate(A)} N, M = map(int, input().split()) S = [input() for _ in range(N)] B = [[0]*K for _ in range(M)] for i in range(N): for j in range(M): for k in range(K): B[j][k] += D[k][pos[S[i][j]]] for i in range(N): ans = 0 for j in range(M): ans += B[j][pos[S[i][j]]] print(ans)