#include<iostream>
using namespace std;
#define ll long long
#define rep(i,x,y) for(int i(x);i<=y;++i)
#define max(x,y) y-x>>63?x:y
const ll mod(998244353);
const int N(1010);int t,n,m,id;
ll f[N][N],f3[N][N],f2[N][N],f4[N][N];ll ans1,c1,f1,lc,ans2;
char c[N][N];
inline void Mo(ll &x) {x-=x/mod*mod;}
inline void solve()
{
cin>>n>>m>>c1>>f1;
rep(i,1,n) cin>>c[i];
rep(i,1,n)
{
rep(j,0,m-1)
f2[i][j+1]=c[i][j]=='1'?0:(f2[i-1][j+1]+1),Mo(f2[i][j+1]);
for(int j(m-1);j>=0;--j)
f[i][j+1]=c[i][j]=='1'?0:(f[i][j+2]+1),Mo(f[i][j+1]);
}
rep(i,1,n)
rep(j,1,m)
f3[i][j]=c[i][j-1]=='1'?0:(f3[i-1][j]+max(f[i][j]-1,0ll)),Mo(f3[i][j]);
rep(i,1,n)
rep(j,1,m)
if(c[i][j-1]=='0')
{
if(f[i][j]>1&&f2[i][j]>2)
lc=f3[i-2][j]*(f[i][j]-1),Mo(lc),ans1+=lc,f4[i][j]+=lc,Mo(ans1),Mo(f4[i][j]);
if(f2[i][j]>3)
ans2+=f4[i-1][j],f4[i][j]=f4[i-1][j],Mo(ans2);
}
cout<<ans1*c1%mod<<' '<<ans2*f1%mod<<'\n',ans1=ans2=0;
rep(i,1,n)
rep(j,1,m)
f[i][j]=f2[i][j]=f3[i][j]=f4[i][j]=0;
}
int main()
{
ios::sync_with_stdio(0),cin.tie(nullptr),cout.tie(nullptr),
cin>>t>>id;
while(t--)
solve();
return 0;
}