#include <bits/stdc++.h>
#define MAXN 5005
#define MOD 998244353
using namespace std;
int T,id,n,m,c,f;
long long a[MAXN][MAXN],sum[MAXN][MAXN],Sum[MAXN][MAXN];
int main()
{
cin >> T >> id;
while(T--)
{
memset(sum,0,sizeof(sum));
memset(Sum,0,sizeof(Sum));
long long ans_c=0,ans_f=0;
cin >> n >> m >> c >> f;
if(c==0 && f==0)
{
cout << "0" << " " << "0";
return 0;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
char c;
cin >> c;
if(c=='1')
a[i][j]=1;
else
a[i][j]=0;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
for(int k=j+1;k<=m;k++)
{
if(a[i][k]==0)
sum[i][j]++;
else
break;
}
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
for(int k=1;k<=j;k++)
if(a[k][i]==1)
Sum[i][j]++;
for(int i=1;i<=m;i++)
for(int up=1;up<=n;up++)
for(int down=up+2;down<=n;down++)
{
if(Sum[i][down]==Sum[i][up] && a[up][i]==0 && a[down][i]==0)
{
long long k1=sum[up][i],k2=sum[down][i];
ans_c+=(k1*k2%MOD)%MOD;
}
}
cout << ans_c*c%MOD << " ";
if(f==0)
{
cout << "0" << endl;
return 0;
}
for(int i=1;i<=m;i++)
for(int up=1;up<=n;up++)
for(int down=up+3;down<=n;down++)
{
if(Sum[i][down]==Sum[i][up] && a[up][i]==0 && a[down][i]==0)
{
long long k1=sum[up][i];
for(int k=down-1;k>=up+1;k--)
ans_f+=(k1*sum[k][i]%MOD)%MOD;
}
}
cout << ans_f*f%MOD << endl;
}
return 0;
}