#include<bits/stdc++.h>
using namespace std;
const int Mod=998244353;
char s[1050][1050];
int xx,Y,n,m,Ansc,Ansf;
void dfsc(int x,int y,int sx,int sy)
{
	if(s[x][y]=='1') return;
	if(y>m||x>n) return;
	if(sx>1&&sy>=3)
	{
		Ansc++;
		int sum=0;
		for(int i=x+1;i<=n;i++)
		{
			if(s[i][Y]=='1') break;
			sum++;
		}
		Ansf+=sum;
	}
	if(sy!=2)
	{
		dfsc(x,y+1,sx+1,sy);
		if((sx==1&&sy>2)||(sy==1&&sx>1)) dfsc(x+1,Y,1,sy+1);
	}
	else dfsc(x+1,Y,1,sy+1);
	return;
}
int main()
{
	freopen("plant.in","r",stdin);
	freopen("plant.out","w",stdout);
	int T,id; cin>>T>>id;
	while(T--)
	{
		Ansc=0; Ansf=0;
		for(int i=1;i<=1049;i++)
		{
			for(int j=1;j<=1049;j++)
				s[i][j]=0;
		}
		int c,f;
		scanf("%d%d%d%d",&n,&m,&c,&f);
		if(c==0&&f==0)
		{
			Ansc=0; Ansf=0;
		}
		else
		{
			for(int i=1;i<=n;i++)
			{
				for(int j=1;j<=m;j++)
					cin>>s[i][j];
			}
			for(int i=1;i<=n;i++)
			{
				for(int j=1;j<=m;j++)
				{
					xx=i; Y=j;
					dfsc(i,j,1,1);
				}
			}
			Ansc=Ansc%Mod; Ansf=(Ansf*f)%Mod;
		}
		printf("%d %d\n",Ansc,Ansf);
	}
	fclose(stdin); fclose(stdout);
	return 0;
}