n,k = map(int,input().split()) s = [list(input()) for _ in range(2*n)] c = [tuple(map(int,input().split())) for _ in range(2*n)] b_cnt = sum(e.count("#") for e in s) cc = [] for i in range(2*n): for j in c[i]: cc.append(j) cc.sort(reverse = True) ans = sum(cc[:b_cnt]) if not b_cnt & 1: cc = [] for i in range(2*n): for j in range(n): cc.append(c[i][j] + c[i][n-j]) cc.sort(reverse = True) ans = max(ans,sum(cc[:b_cnt//2]) + k) print(ans)