n,k=map(int,input().split()) cnt=0 for i in range(2*n): s=list(input()) cnt+=s.count("#") c=[[]] for i in range(2*n): c.append([0]+list(map(int,input().split()))) #シンメトリーじゃない x=[] for i in range(1,2*n+1): for j in range(1,2*n+1): x.append(c[i][j]) x.sort(reverse=True) res=0 for i in range(cnt):res+=x[i] ans=res #シンメトリー if cnt%2==0: x=[] for i in range(1,2*n+1): for j in range(1,n+1): x.append(c[i][j]+c[i][2*n+1-j]) x.sort(reverse=True) res=k for i in range(cnt//2):res+=x[i] ans=max(ans,res) print(ans)