#include<iostream>
#include<cstring>
using namespace std;
int T,id;
int n,m,c,f;
int a[1001][1001];
string s;

void searchCF(){
	int x1,x2,y0,y1,y2;
	long long cntc=0,cntf=0;
	bool flag;
	for(x1=1;x1<n-1;x1++){
		for(x2=x1+2;x2<=n;x2++){
			for(y0=1;y0<m;y0++){
				for(y1=y0+1;y1<=m;y1++){
					for(y2=y0+1;y2<=m;y2++){
						flag=true;
						for(int x=x1;x<=x2;x++){
							if(a[x][y0]=='1'){
								flag=false;
								break;
							}								
						}
						if(!flag) break;
						for(int y=y0;y<=y1;y++){
							if(a[x1][y]=='1'){
								flag=false;
								break;
							}
						}
						if(!flag) break;
						for(int y=y0;y<=y2;y++){
							if(a[x2][y]=='1'){
								flag=false;
								break;
							}
						}
						if(!flag) break;
						if(flag){
							cntc++;
							if(x2<n){
								for(int xx=x2+1;xx<=n;xx++){
									if(a[xx][y0]=='1'){
										break;
									}else{
										cntf++;
									}
								}
							}
						}
					}
				}
			}
		}
	}
	cout<<c*cntc%998244353<<" "<<f*cntf%998244353<<endl;
}

int main(){
	freopen("plant.in","r",stdin);
	freopen("plant.out","w",stdout);
	cin>>T>>id;
	for(int t=0;t<T;t++){
		cin>>n>>m>>c>>f;
		for(int i=1;i<=n;i++){
			cin>>s;
			for(int j=1;j<=m;j++){
				a[i][j]=s[j-1];
			}
		}
		searchCF();
	}
	return 0;
}