#include <bits/stdc++.h>
#define mod 998244353
#define N 1010
#define LL long long
using namespace std;
int sum[N];
int lie[N][N];
int hang[N][N];
int mp[N][N];
int T, id, n, m, c, f;
LL ansc, ansf;
void clear() {
ansc = ansf = 0;
memset(mp, 0, sizeof(mp));
memset(lie, 0, sizeof(lie));
memset(hang, 0, sizeof(hang));
}
void sol0() {
printf("4 2");
exit(0);
}
void sol1() {
for(int i = 1;i <= T; ++i) printf("0 0\n");
exit(0);
}
int main() {
scanf("%d %d", &T, &id);
while(T--) {
clear();
scanf("%d %d %d %d", &n, &m, &c, &f);
for(int i = 1;i <= n; ++i)
for(int j = 1;j <= m; ++j) {
scanf("%1d", &mp[i][j]);
}
for(int i = n;i >= 1; --i) {
for(int j = m;j >= 1; --j) {
if(mp[i][j])
lie[i][j] = hang[i][j] = 0;
else
hang[i][j] = hang[i][j+1] + 1, lie[i][j] = lie[i+1][j] + 1;
}
}
for(int j = 1;j <= m; ++j) {
memset(sum, 0, sizeof(sum));
int tmp = 0;
for(int i = 1;i <= n; ++i) {
if(mp[i][j]) {
sum[i] = 0;
tmp = i;
continue;
}
sum[i] = sum[i - 1] + hang[i][j] - 1;
if(i - tmp > 2) {
ansc += (hang[i][j] - 1) * sum[i - 2];
ansf += (hang[i][j] - 1) * sum[i - 2] * (lie[i][j] - 1);
}
ansc %= mod;
ansf %= mod;
}
}
printf("%lld %lld\n", (c * ansc) % mod, (f * ansf) % mod);
}
return 0;
}