#include<bits/stdc++.h>
using namespace std;
#define int long long 
#define maxn 1005
#define mod 998244353
int T,id;
int n,m,c,f;
char a[maxn][maxn];
int pre[maxn][maxn];
int erp[maxn][maxn];
int suf[maxn][maxn];
int ef[maxn][maxn];
void solve(){
	scanf("%lld%lld%lld%lld",&n,&m,&c,&f);
	int vc=0,vf=0;
	for(int i=1;i<=n;i++){
		scanf("%s",a[i]+1);
	}
	for(int i=1;i<=n;i++){
		pre[i][m+1]=0;
		for(int j=m;j>=1;j--){
			if(a[i][j]=='0')pre[i][j]=pre[i][j+1]+1;
			else pre[i][j]=0;
		}
	}
	for(int j=1;j<=m;j++){
		suf[n+1][j]=0;
		for(int i=n;i>=1;i--){
			if(a[i][j]=='0')suf[i][j]=suf[i+1][j]+1;
			else suf[i][j]=0;
		}
	}
	
	for(int j=1;j<=m;j++){
		erp[0][j]=0;
		ef[0][j]=0;
		for(int i=1;i<=n+1;i++){
			erp[i][j]=erp[i-1][j]+(pre[i][j]<=1?0:pre[i][j]-1);
			ef[i][j]=ef[i-1][j]+(pre[i][j]<=1?0:(pre[i][j]-1)*suf[i+1][j]);
		}
	}
//	for(int i=1;i<=n;i++){
	//	for(int j=1;j<=m;j++){
		//	printf("%d ",erp[i][j]);
	//	}
	//	printf("\n");
//	}
//	printf("\n");
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			int temp=vc;
			vc+=(erp[i+suf[i][j]][j]-erp[i+1][j])*(pre[i][j]<=1?0:pre[i][j]-1);
			vc%=mod;
			vf+=(ef[i+suf[i][j]-1][j]-ef[i+1][j])*(pre[i][j]<=1?0:pre[i][j]-1);
			vf%=mod;
	//		printf("%d ",-temp+vc);
		}
//		printf("\n");
	}
	printf("%lld %lld\n",vc*c%mod,vf*f%mod);
}
signed main(){
	freopen("plant.in","r",stdin);
	freopen("plant.out","w",stdout);
	scanf("%lld%lld",&T,&id);
	while(T--)solve();
}