#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<algorithm>
using namespace std;
int t,id,n,m,a[1010][1010];
long long c,ff;
long long mmo=998244353;
bool ta=1,tb=1;
int main(){
	freopen("plant.in","r",stdin);
	freopen("plant.out","w",stdout);
	
	scanf("%d%d",&t,&id);
	while(t--){
		scanf("%d%d%lld%lld",&n,&m,&c,&ff);
		for(int i=1;i<=n;i++){
			string s;
			cin>>s;
			for(int j=1;j<=m;j++){
				a[i][j]=s[j-1]-'0';
				if(j%3==0&&!a[i][j]) ta=0;
				if(i%4==0&&!a[i][j]) tb=0;
			}
		}
		if(c==0&&ff==0){printf("0 0\n");continue;}
		if(n==3&&m==2){
			long long f=1;
			for(int i=1;i<=n;i++)
				for(int j=1;j<=m;j++){
					if(a[i][j]&&(i!=2&&j!=2)){
						f=0;
						break;
					}
				}
			printf("%lld 0\n",(c*f)%mmo);
			continue;
		}
		if(ta){
			long long f=0,f2=0;
			for(int i=1;i<=n;i++)
				for(int j=i+2;j<=n;j++)
					for(int ol=1;ol<=m;ol+=3){
						int fl1=1,fl2=1,fl3=1;
						for(int qwq=ol;qwq<=ol+1;qwq++)
							if(a[i][qwq]){fl1=0;break;}
						for(int qwq=ol;qwq<=ol+1;qwq++)
							if(a[j][qwq]){fl2=0;break;}
						for(int qwq=i;qwq<=j;qwq++)
							if(a[qwq][ol]){fl3=0;break;}
						if(fl1&&fl2&&fl3)  f++;
					}
			for(int i=1;i<=n;i++)
				for(int j=i+2;j<=n;j++)
					for(int qw=j+1;qw<=n;qw++)
						for(int ol=1;ol<=m;ol+=3){
							int fl1=1,fl2=1,fl3=1;
							for(int qwq=ol;qwq<=ol+1;qwq++)
								if(a[i][qwq]){fl1=0;break;}
							for(int qwq=ol;qwq<=ol+1;qwq++)
								if(a[j][qwq]){fl2=0;break;}
							for(int qwq=i;qwq<=qw;qwq++)
								if(a[qwq][ol]){fl3=0;break;}
							if(fl1&&fl2&&fl3) f2++;
						}
			printf("%lld %lld\n",(c*f)%mmo,(f2*ff)%mmo);
			continue;
		}
		if(tb){
			long long f=0,f2=0;
			for(int i=1;i<=n;i+=4){
				int j=i+2;
					for(int ol=1;ol<=m;ol++){
						int ll1,ll2;
						for(int jk=ol+1;jk<=m;jk++){
							if(a[i][jk]){
								ll1=jk-1;
								break;
							}
						}
						for(int lk=ol+1;lk<=m;lk++){
							if(a[j][lk]){
								ll2=lk-1;
								break;
							}
						}
						f=f+(ll1*ll2*1ll);
					}
			}
			printf("%lld 0\n",(c*f)%mmo);
			continue;
		}
		if(n==4&&m==2){
			long long f=0,f2=0;
//			if(a[2][1]||a[3][1]||((a[1][1]||a[1][2]||a[3][2])&&(a[2][2]||a[4][1]||a[4][2]))) f=0;
//			else if((a[1][1]||a[1][2]||a[3][2])||(a[2][2]||a[4][1]||a[4][2])) f=1;
//			else if((!(a[1][1]||a[1][2]||a[3][2]))&&(!(a[2][2]||a[4][1]||a[4][2]))) f=3;
			for(int i=1;i<=n;i++)
				for(int j=i+2;j<=n;j++)
					for(int ol=1;ol<=m;ol++)
						for(int jk=ol+1;jk<=m;jk++)
							for(int lk=ol+1;lk<=m;lk++){
								int fl1=1,fl2=1,fl3=1;
								for(int qwq=ol;qwq<=jk;qwq++)
									if(a[i][qwq]){fl1=0;break;}
								for(int qwq=ol;qwq<=lk;qwq++)
									if(a[j][qwq]){fl2=0;break;}
								for(int qwq=i;qwq<=j;qwq++)
									if(a[qwq][ol]){fl3=0;break;}
								if(fl1&&fl2&&fl3)  f++;
							}
			for(int i=1;i<=n;i++)
				for(int j=i+2;j<=n;j++)
					for(int qw=j+1;qw<=n;qw++)
						for(int ol=1;ol<=m;ol++)
							for(int jk=ol+1;jk<=m;jk++)
								for(int lk=ol+1;lk<=m;lk++){
									int fl1=1,fl2=1,fl3=1;
									for(int qwq=ol;qwq<=jk;qwq++)
										if(a[i][qwq]){fl1=0;break;}
									for(int qwq=ol;qwq<=lk;qwq++)
										if(a[j][qwq]){fl2=0;break;}
									for(int qwq=i;qwq<=qw;qwq++)
										if(a[qwq][ol]){fl3=0;break;}
									if(fl1&&fl2&&fl3) f2++;
								}
			printf("%lld %lld\n",(c*f)%mmo,(f2*ff)%mmo);
			continue;
		}
		long long f=0,f2=0;
		for(int i=1;i<=n;i++)
			for(int j=i+2;j<=n;j++)
				for(int qw=j+1;qw<=n;qw++)
					for(int ol=1;ol<=m;ol++)
						for(int jk=ol+1;jk<=m;jk++)
							for(int lk=ol+1;lk<=m;lk++){
								int fl1=1,fl2=1,fl3=1;
								for(int qwq=ol;qwq<=jk;qwq++)
									if(a[i][qwq]){fl1=0;break;}
								for(int qwq=ol;qwq<=lk;qwq++)
									if(a[j][qwq]){fl2=0;break;}
								for(int qwq=i;qwq<=qw;qwq++)
									if(a[qwq][ol]){fl3=0;break;}
								if(fl1&&fl2&&fl3)  f2++;
						}
		if(ff)
			for(int i=1;i<=n;i++)
				for(int j=i+2;j<=n;j++)
					for(int ol=1;ol<=m;ol++)
						for(int jk=ol+1;jk<=m;jk++)
							for(int lk=ol+1;lk<=m;lk++){
								int fl1=1,fl2=1,fl3=1;
								for(int qwq=ol;qwq<=jk;qwq++)
									if(a[i][qwq]){fl1=0;break;}
								for(int qwq=ol;qwq<=lk;qwq++)
									if(a[j][qwq]){fl2=0;break;}
								for(int qwq=i;qwq<=j;qwq++)
									if(a[qwq][ol]){fl3=0;break;}
								if(fl1&&fl2&&fl3)  f++;
							}
		printf("%lld %lld\n",(f*c)%mmo,(f2*ff)%mmo);
	}
	
	fclose(stdin);
	fclose(stdout);
	return 0;
}