记录
#include<bits/stdc++.h>
using namespace std;
const long long mod=998244353;
int T,id;
int line[1001][1001],que[1001][1001];
char a[1001][1001];
long long sigma[1001],sigmaq[1001];
int main()
{
scanf("%d%d",&T,&id);
while(T--)
{
int n,m;
long long c,f;
scanf("%d%d%lld%lld",&n,&m,&c,&f);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
char c=getchar();
while(c!='0'&&c!='1')
c=getchar();
a[i][j]=c;
}
for(int i=1;i<=1000;i++)
for(int j=1;j<=1000;j++)
{
line[i][j]=0;
que[i][j]=0;
}
for(int i=n;i>=1;i--)
{
for(int j=m;j>=1;j--)
{
if(a[i][j]=='0')
{
line[i][j]=line[i][j+1]+1;
que[i][j]=que[i+1][j]+1;
}
}
}
long long vc=0,vf=0;
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
sigma[j]=sigma[j-1]+max((long long)0,(long long)line[j][i]-1);
sigma[j]%=mod;
}
for(int j=1;j<=n;j++)
{
sigmaq[j]=sigmaq[j-1]+max((long long)0,(long long)(line[j][i]-1)*(que[j][i]-1));
sigmaq[j]%=mod;
}
for(int j=1;j<=n;j++)
{
if(line[j][i]>=2&&que[j][i]>=3)
{
vc+=(long long)(line[j][i]-1)*(sigma[j+que[j][i]-1]-sigma[j+1]);
vc%=mod;
if(que[j][i]>=4)
{
vf+=(long long)(line[j][i]-1)*(sigmaq[j+que[j][i]-1]-sigmaq[j+1]);
vf%=mod;
}
}
}
}
vc*=c,vf*=f;
vc%=mod,vf%=mod;
printf("%lld %lld\n",vc,vf);
}
return 0;
}