N,M = map(int,input().split()) V= list(map(int,input().split())) S = [] for _ in range(N): S.append(list(map(lambda x:x == 'o',list(input())))) memo = set() ans = 0 while len(memo) < N: cum = [0 for _ in range(M)] for i in range(N): if i in memo: continue for m in range(M): if S[i][m]: cum[m] += V[i] for m in range(M): if cum[m] == max(cum): ans += cum[m] ** 2 for i in range(N): if S[i][m]: memo.add(i) break print(ans)