#include <bits/stdc++.h>
#define int unsigned long long
using namespace std;
const unsigned long long Mod=998244353;
vector<vector<char>> a;
int countC(int x,int y,int n,int m) {
	if(x+1>n||a[x+1][y]=='1')
		return 0;
	int res=0,cnt=0;
	for(int i=x+2;i<=n&&a[i][y]!='1';i++)
		for(int j=y+1;j<=m&&a[i][j]!='1';j++)
			cnt=(cnt+1)%Mod;
	for(int i=y+1;i<=m&&a[x][i]!='1';i++)
		res=(res+cnt)%Mod;
	return res;
}
int countF(int x,int y,int n,int m) {
	if(x+1>n||a[x+1][y]=='1')
		return 0;
	int res=0;
	int sub_res=0;
	for(int i=x+2;i<=n&&a[i][y]!='1';i++) {
		int cnt=0;
		for(int j=y+1;j<=m&&a[i][j]!='1';j++)
			cnt=(cnt+1)%Mod;
		for(int j=i+1;j<=n&&a[j][y]!='1';j++)
			sub_res=(sub_res+cnt)%Mod;
	}
	for(int i=y+1;i<=m&&a[x][i]!='1';i++)
		res=(res+sub_res)%Mod;
	return res;
}
signed main() {
	freopen("plant.in","r",stdin);
	freopen("plant.out","w",stdout);
	int T,id;
	cin>>T>>id;
	while(T--) {
		int n,m,c,f;
		cin>>n>>m>>c>>f;
		if(id==1) {
			cout<<"0 0\n";
			continue;
		}
		a.resize(n+1,vector<char>(m+1));
		for(int i=1;i<=n;i++)
			for(int j=1;j<=m;j++)
				cin>>a[i][j];
		int ans=0;
		for(int i=1;i<=n;i++)
			for(int j=1;j<=m;j++)
				if(a[i][j]!='1')
					ans=(ans+countC(i,j,n,m))%Mod;
		cout<<ans%Mod<<' ';
		if(id==15) {
			cout<<"0\n";
			continue;
		}
		ans=0;
		for(int i=1;i<=n;i++)
			for(int j=1;j<=m;j++)
				if(a[i][j]!='1')
					ans=(ans+countF(i,j,n,m))%Mod;
		cout<<ans%Mod<<endl;
	}
	return 0;
}
