#include<bits/stdc++.h>
using namespace std;
const long long mod=998244353;
int t,id;
int n,m,c,f;
int a[1005][1005];
char temp[1005][1005];
struct nodex{
	int y_1,y_2;
}fx[1005];
struct nodey{
	int x_1,x_2;
}fy[1005];
long long vc,vf;
bool check(int x,int y)
{
	return a[x][y];//1为坑 
}
bool check_yty(int x,int y1,int y2)
{
	if(y1<=fx[x].y_1&&y2>=fx[x].y_2)return false;
	for(int i=y1;i<=y2;i++)
	{
		if(check(x,i))
		{
			fx[x].y_1=y1;
			fx[x].y_2=y2;
			return false;
		}
		//有坑 不行 
	}
	//行 
	return true;
}
bool check_xtx(int x1,int x2,int y)
{
	if(x1<=fy[y].x_1&&x2>=fy[y].x_2)return false;
	for(int i=x1;i<=x2;i++)
	{
		if(check(i,y))
		{
			fy[y].x_1=x1;
			fy[y].x_2=x2;
			return false;
		}
	}
	return true;
}
void find_c()
{
	for(int x1=1;x1<=n;x1++)
	{
		for(int x2=1;x2<=n;x2++)
		{
			if(x1+1>=x2)continue;
			for(int y0=1;y0<=m;y0++)
			{
				for(int y1=1;y1<=m;y1++)
				{
					if(y1<=y0)continue;
					for(int y2=0;y2<=m;y2++)
					{
						if(y2<=y0)continue;
						if(!check_yty(x1,y0,y1))continue;
						if(!check_yty(x2,y0,y2))continue;
						if(!check_xtx(x1,x2,y0))continue;
						vc++;
						vc=vc%mod;
					}
				}
			}
		}
	}
}
void find_f()
{
	for(int x1=1;x1<=n;x1++)
	{
		for(int x2=1;x2<=n;x2++)
		{
			if(x1+1>=x2)continue;
			for(int x3=1;x3<=n;x3++)
			{
				if(x2>=x3)continue;
				for(int y0=1;y0<=m;y0++)
				{
					for(int y1=1;y1<=m;y1++)
					{
						if(y1<=y0)continue;
						for(int y2=0;y2<=m;y2++)
						{
							if(y2<=y0)continue;
							if(!check_yty(x1,y0,y1))continue;
							if(!check_yty(x2,y0,y2))continue;
							if(!check_xtx(x1,x3,y0))continue;
							vf++;
							vf=vf%mod;
						}
					}
				}
			}
			
		}
	}
}
int main()
{
	freopen("plant.in","r",stdin);
	freopen("plant.out","w",stdout);
	cin>>t>>id;
	for(int i=1;i<=t;i++)
	{
		vc=0;
		vf=0;
		memset(a,0,sizeof(a));
		scanf("%d%d%d%d",&n,&m,&c,&f);
		for(int j=1;j<=n;j++)
		{
			for(int z=1;z<=m;z++)
			{
				cin>>temp[j][z];
				a[j][z]=temp[j][z]-'0';
				//0无土坑，1为土坑 
			}
		}
		find_c();
		find_f();
		int ansa=vc%mod*c,ansb=vf%mod*f;
		cout<<ansa<<" "<<ansb<<endl;
	}
	return 0;
}
