#include <bits/stdc++.h>
using namespace std;
#define N 1008
#define mod 998244353
int n, m, T, f, c, _, hang[N][N], lie[N][N], pc, pv;
char p[N][N];
int main() {
scanf("%d%d", &T, &_);
while (T--) {
for (int i = 1; i <= 1001; i++) {
memset(hang[i], 0, sizeof(hang[i]));
memset(lie[i], 0, sizeof(lie[i]));
}
scanf("%d%d%d%d", &n, &m, &f, &c);
for (int i = 1; i <= n; i++) {
scanf("%s", p[i] + 1);
// for(int j=1;j<=m;j++)
// printf("%c ",p[i][j]);
}
for (int i = n; i >= 1; i--) {
for (int j = m; j >= 1; j--)
if (p[i][j] == '0')
hang[i][j] = hang[i][j + 1] + 1;
for (int j = n; j >= 1; j--)
if (p[i][j] == '0')
lie[i][j] = lie[i + 1][j] + 1;
}
// for(int i=1;i<=n;i++)
// {
// for(int j=1;j<=m;j++)
// printf("%d ",hang[i][j]);
// printf("\n");
// }
for (int j = 1; j <= m - 1; j++) {
for (int i = 1; i < n - 1; i++) {
int cnt = 1;
if (p[i][j] != '1' && hang[i][j] > 1 && p[i + 1][j] != '1' && p[i + 2][j] != '1')
for (int k = i + 2; p[k][j] != '1' && k <= n; k++) {
pc = pc + (hang[i][j] - 1) * (hang[k][j] - 1) % mod;
// printf("%d %d %d\n",hang[k][j],k,j);
cnt++;
}
if (p[i][j] == '0' && hang[i][j] > 1 && p[i + 1][j] == '0' && p[i + 2][j] == '0')
for (int k = 2; k <= cnt && i + k <= n; k++) {
pv = pv + (hang[i][j] - 1) * (hang[i + k][j] - 1) * (lie[i + k][j] - 1) % mod;
}
}
}
printf("%d %d\n", pc % mod, pv % mod);
}
return 0;
}