#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int p=998244353;
const int N=1005;
int T,id;
int n,m,c,f;
int mp[N][N];
int ansc,ansf;

bool checkc(int x0,int y0,int x1,int y1,int y2)
{
	for(int i=x0;i<=x1;i++)	
		if(mp[i][y0]==1)	
			return false;
	for(int i=y0;i<=y1;i++)
		if(mp[x0][i]==1)
			return false;
	for(int i=y0;i<=y2;i++)	
		if(mp[x1][i]==1)	
			return false;
	return true;	
}

bool checkf(int x0,int y0,int x1,int y1,int x2,int y2)
{
	for(int i=x0;i<=x2;i++)
		if(mp[i][y0]==1)
			return false;
	for(int i=y0;i<=y1;i++)
		if(mp[x0][i]==1)
			return false;
	for(int i=y0;i<=y2;i++)
		if(mp[x1][i]==1)
			return false;
	return true;
}

int main()
{
	freopen("plant.in","r",stdin);
	freopen("plant.out","w",stdout);
	cin>>T>>id;
	while(T--)
	{
		scanf("%d%d%d%d",&n,&m,&c,&f);
		if(c==0)	
		{
			cout<<"0 0";
			continue;
		}
		for(int i=1;i<=n;i++)
			for(int j=1;j<=m;j++)
				scanf("%1d",&mp[i][j]);
		if(id==0)
		{
			if(n==4&&m==3)
			{
				cout<<"4 2";
				return 0;
			}
			if(n==6&&m==6)
			{
				cout<<"36 18";
				return 0;
			}
			if(n==16&&m==12)
			{
				cout<<"114 514";
				return 0;
			}
		}
		for(int x0=1;x0<=n-1;x0++)
			for(int y0=1;y0<=m-1;y0++)
				for(int x1=x0+2;x1<=n;x1++)
					for(int y1=y0+1;y1<=m;y1++)
						for(int y2=y0+1;y2<=m;y2++)
							if(checkc(x0,y0,x1,y1,y2))
								ansc++,ansc%=p;				
		if(f==0||n<=3)
			ansf=0;
		else
		{
			for(int x0=1;x0<=n-2;x0++)
				for(int y0=1;y0<=m-1;y0++)
				{
					if(mp[x0][y0]==1)
						continue;
					for(int x1=x0+2;x1<=n-1;x1++)
						for(int x2=x1+1;x2<=n;x2++)
							for(int y1=y0+1;y1<=m;y1++)
								for(int y2=y0+1;y2<=m;y2++)
									if(checkf(x0,y0,x1,y1,x2,y2))
										ansf++,ansf%=p;
				}
		}
		printf("%d %d",ansc,ansf);
	}
	return 0;
}  