n, k = map(int, input().split()) cnt = sum(input().count('#') for _ in range(2 * n)) c = [list(map(int, input().split())) for _ in range(2 * n)] c_all = [] for ci in c: c_all += ci ans = sum(sorted(c_all, reverse=True)[:cnt]) if cnt % 2 == 0: c_sym = [] for ci in c: for j in range(n): c_sym.append(ci[j] + ci[2 * n - 1 - j]) ans = max(ans, sum(sorted(c_sym, reverse=True)[:cnt // 2]) + k) print(ans)