#include<bits/stdc++.h>
using namespace std;

const int mod=998244353;
int n,m,c,f;
long long ac,af;
int a[1011][1011];
long long f1[1011][1011],f2[1011][1011];
void getc(int x,int y);
void getf(int x,int y);

void getc(int x,int y)
{
	if(f1[x][y]<2ll || f2[x][y]<3ll)
		return;
	for(int i=x+2;i<x+f2[x][y];i++)
		ac=(((f1[i][y]-1ll)*(f1[x][y]-1ll)%mod)+ac)%mod;
}

void getf(int x,int y)
{
	if(f1[x][y]<2ll || f2[x][y]<4ll)
		return;
	for(int i=x+2;i<x+f2[x][y]-1ll;i++)
		af=(((f1[i][y]-1ll)*(f1[x][y]-1ll)*(f2[x][y]-i+x-1ll)%mod)+af)%mod;
}
int main()
{
	freopen("plant.in","r",stdin);
	freopen("plant.out","w",stdout);
	int T,_id;
	scanf("%d%d",&T,&_id);
	for(int I=1;I<=T;I++)
	{
		scanf("%d%d%d%d",&n,&m,&c,&f);
		for(int i=1;i<=n;i++)
			for(int j=1;j<=m;j++)
				scanf("%1d",&a[i][j]);
		for(int i=1;i<=n;i++)
			for(int j=m;j>=1;j--)
				if(a[i][j]!=1)
					f1[i][j]=f1[i][j+1]+1ll;
				else
					f1[i][j]=0ll;
		for(int j=1;j<=m;j++)
			for(int i=n;i>=1;i--)
				if(a[i][j]!=1)
					f2[i][j]=f2[i+1][j]+1ll;
				else
					f2[i][j]=0ll;
		ac=af=0ll;
		if(c!=0)
			for(int i=1;i<=n;i++)
				for(int j=1;j<=n;j++)
					getc(i,j);
		if(f!=0)
			for(int i=1;i<=n;i++)
				for(int j=1;j<=n;j++)
					getf(i,j);
		ac*=c;
		af*=f;
		printf("%lld %lld\n",ac,af);
	}
	return 0;
}