#include<bits/stdc++.h>
using namespace std;
const int N=1010,P=998244353;
#define int long long
int T,id,n,m,c,f;
char a[N][N];
int ri[N][N],dn[N][N];
int sum[N];
void sol(){
memset(a,0,sizeof a);
memset(ri,0,sizeof ri);
memset(dn,0,sizeof dn);
memset(sum,0,sizeof sum);
cin>>n>>m>>c>>f;
for(int i=1;i<=n;++i)
scanf("%s",a[i]+1);
fill(a[n+1],a[n+1]+n+2,0);
for(int i=n;i>=1;--i)
for(int j=m;j>=1;--j) {
if(a[i][j]=='1') ri[i][j]=dn[i][j]=-1;
else {
ri[i][j]=1+(a[i][j+1]=='0')*ri[i][j+1];
dn[i][j]=1+(a[i+1][j]=='0')*dn[i+1][j];
}
}
int ans1=0,ans2=0;
for(int j=m;j>=1;--j) {
memset(sum,0,sizeof sum);
for(int i=n;i>=1;--i){
if(ri[i][j]==-1) continue;
sum[i]=(sum[i+1]+ri[i][j]-1)%P;
if(dn[i][j]>=3)(ans1+=(ri[i][j]-1)*sum[i+2]%P)%=P;
}
}
for(int j=m;j>=1;--j) {
memset(sum,0,sizeof sum);
for(int i=n;i>=1;--i){
if(ri[i][j]==-1) continue;
sum[i]=(sum[i+1]+(ri[i][j]-1)*(dn[i][j]-1))%P;
if(dn[i][j]>=4)(ans2+=(ri[i][j]-1)*sum[i+2]%P)%=P;
}
}
cout<<ans1<<' '<<ans2<<'\n';
}
main(){
cin>>T>>id;
while(T--)sol();
}