#include <bits/stdc++.h>
#define int long long
using namespace std;
const int mod = 998244353;
const int N = 1e3 + 5;
int t, id, n, m, c, f;
int a[N][N], s1[N][N], s2[N][N], s3[N][N];
void solve() {
cin >> n >> m >> c >> f;
memset(s1, 0, sizeof(s1));
memset(s2, 0, sizeof(s2));
memset(s3, 0, sizeof(s3));
memset(a, 0, sizeof(a));
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';
}
for(int i = 1; i <= n; i++)
for(int j = m - 1; j >= 1; j--)
s1[i][j] = (a[i][j + 1] == 1 ? 0 : s1[i][j + 1] + 1) % mod;
for(int j = 1; j < m; j++)
for(int i = 2; i <= n; i++)
s2[i][j] = (a[i - 1][j] == 1 ? 0 : s2[i - 1][j] + s1[i - 1][j]) % mod;
for(int j = 1; j < m; j++)
for(int i = 3; i <= n; i++)
s3[i][j] = (a[i - 1][j] == 1 ? 0 : s3[i - 1][j] + (a[i - 2][j] == 0 && a[i - 3][j] == 0) *
max(s3[i - 2][j], s1[i - 3][j]) * s1[i - 1][j] % mod) % mod;
int vc = 0, vf = 0;
for(int i = 3; i <= n; i++)
for(int j = 1; j < m; j++) {
vc = (vc + (a[i][j] == 0 && a[i-1][j] == 0) * s1[i][j] * s2[i-1][j] % mod) % mod;
vf = (vf + (a[i][j] == 0) * s3[i][j] % mod) % mod;
}
cout << vc * c << " " << vf * f << endl;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> t >> id;
while(t--) {
solve();
}
return 0;
}