N,K = map(int,input().split()) kuro = 0 for i in range(N*2): tmp = input() kuro+=tmp.count("#") score = [] score2 = [] for i in range(N*2): tmp2 = list(map(int,input().split())) for j in range(N): score2.append(tmp2[j]+tmp2[-1-j]) score.append(tmp2[j]) score.append(tmp2[-1-j]) score2.sort() score2.reverse() score.sort() score.reverse() if kuro%2 == 1: ans = sum(score[:kuro]) else: tmpans1 = sum(score[:kuro]) tmpans2 = sum(score2[:(kuro//2)])+K ans = max(tmpans1,tmpans2) print(ans)