/*
这题并没有A掉 自己电脑上运行ok提交就不对
预处理攻击范围 然后模拟
求大神看看有没有错误
Orz
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define ll long long
using namespace std;
ll g[25][25],ans=-10000000;
int n,m,f[125][125],px,py;
char s;
ll F(int x,int y)
{
ll sum=0;
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
{
int nx=px+i-x;
int ny=py+j-y;
if(nx<=n&&nx>0&&ny<=m&&ny>0&&f[nx][ny]==1)sum+=g[i][j];
}
return sum;
}
int main()
{
int x=0,y=0,o=0;
memset(f,-1,sizeof(f));
x++;
while(1)
{
s=getchar();y++;
if(s=='.')f[x][y]=1;
px=max(px,x);py=max(py,y);
if(s=='\n')o++,y=0;
if(o%2==0&&o!=0&&s=='\n')x++,y=0;
if(s>='0'&&s<='9')break;
}
int p=0;
while(s>='0'&&s<='9')
{
p=p*10+s-'0';s=getchar();
}
n=p;
px=(px+1)/2;py=(py+1)/2;
cin>>m;
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
cin>>g[i][j];
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
ans=max(ans,F(i,j));
printf("%lld\n",ans);
return 0;
}