#include<bits/stdc++.h>
using namespace std;
const long long Mod=998244353;

inline int r(){
    int x=0,k=1;
    char ch=getchar();
    while(ch<'0'||ch>'9'){
	    if(ch=='-')
			k=-1;
	    ch=getchar();
	}
	while(ch>='0'&&ch<='9'){
	   x=(x<<1)+(x<<3)+(ch^48);
	   ch=getchar();
	}
	return x*k;
}

char Map[1010][1010];
int lenth[1010][1010];
int n,m,c,f;
int T,id;

bool judge(){
	if(Map[1][1]=='1')
		return 0;
	if(Map[1][2]=='1')
		return 0;
	if(Map[2][1]=='1')
		return 0;
	if(Map[3][1]=='1')
		return 0;
	if(Map[3][2]=='1')
		return 0;
	return 1;
}

void init(){
	for(int i=1;i<=m;i++){
		int ct=1;
		for(int j=n;j>=1;j--){
			if(Map[j][i]=='1')
				ct=0;
			lenth[j][i]=ct;
			ct++;
		}
	}
}

void solve(){
	long long ans1=0,ans2=0;
	long long res=0,resc=0,resf=0;
	long long len2[1010];
	long long len3[1010];
	for(int j=1;j<m;j++){
		for(int i=1;i<=n;){
			int len1=lenth[i][j];
			res=0;
			len2[1]=0;
			
			if(len1<3){
				i+=len1+1;
				continue;
			}
			for(int k=j+1;k<=m;k++){
				if(Map[i][k]=='1')
					break;
				len2[1]++;
			}
			for(int ct=2;ct<=len1;ct++){
				len2[ct]=0;
				for(int ct2=1;j+ct2<=m;ct2++){
					if(Map[i+ct-1][j+ct2]=='1')
						break;
					len2[ct]++;
				}
			}
//			for(int ct=1;ct<=len1;ct++)
//				cout<<len2[ct]<<" ";
//			cout<<endl;
			for(int ct=1;ct<=len1;ct++)
				res+=len2[ct];
			len3[1]=len2[1];
			for(int ct=2;ct<=len1;ct++)
				len3[ct]=len2[ct]+len3[ct-1];
			for(long long x=2;x<=len1;x++){
				resc=(resc+len2[x]*len2[x-1])%(Mod*2);
				resf=(resf+len2[x]*len2[x-1]*(len1-x))%(Mod*2);
			}
			for(long long ct=1;ct<=len1;ct++){
				ans1=(ans1+(len3[ct]-len2[ct])*len2[ct])%(Mod*2);
				ans2=(ans2+(len3[ct]-len2[ct])*len2[ct]*(len1-ct))%(Mod*2);
			}
			i+=len1+1;
		}
	}
//	cout<<ans1<<" "<<ans2<<endl;
//	cout<<resc<<" "<<resf<<endl;
	ans1=(ans1-resc)%Mod;
	ans2=(ans2-resf)%Mod;
	printf("%lld %lld\n",c*ans1,f*ans2);
}


int main(){
	freopen("plant.in","r",stdin);
	freopen("plant.out","w",stdout);
	T=r(),id=r();
	if(id==1||id==5){
		while(T--)
			printf("0\n");
		return 0;
	}
	while(T--){
		n=r(),m=r(),c=r(),f=r();
		for(int i=1;i<=n;i++)
			for(int j=1;j<=m;j++)
				cin>>Map[i][j];
		init();
//		for(int i=1;i<=n;i++){
//			for(int j=1;j<=m;j++)
//				cout<<lenth[i][j]<<" ";
//			cout<<endl;
//		}
		solve();
	}
	return 0;
}
















