#include<iostream>
#include<algorithm>
#define int long long
#define MODN 998244353
using namespace std;
char k;
int T, id, n, m, const_C, const_F;
bool mp[1005][1005];
int x[1005][1005], y[1005][1005];
void solve(){
cin >> n >> m >> const_C >> const_F;
for (int i=0; i<n; i++){
for (int j=0; j<m; j++){
cin >> k;
mp[i][j] = k - '0';
x[j][i] = x[j][i-1] + mp[i][j];
y[i][j] = y[i][j-1] + mp[i][j];
}
}
int ways_C = 0;
int ways_F = 0;
for (int l=0; l<m; l++){
for (int lower=0; lower<n; lower++){
for (int upper=lower+2; upper<n; upper++){
if (x[l][upper] != x[l][lower-1]) break;
int lower_cnt = lower_bound(y[lower], y[lower]+m, 1) - y[lower] - 1 - l;
int upper_cnt = lower_bound(y[upper], y[upper]+m, 1) - y[upper] - 1 - l;
if (lower_cnt < 0 or upper_cnt < 0) break;
ways_C += (lower_cnt * upper_cnt) % MODN;
ways_C %= MODN;
if (upper == n - 1) continue;
int l_cnt = lower_bound(x[l]+upper, x[l]+n, 1) - x[l] - 1 - upper;
ways_F += ((lower_cnt * upper_cnt) % MODN * l_cnt) % MODN;
ways_F %= MODN;
}
}
}
cout << (const_C * ways_C) << ' ' << (const_F * ways_F) << endl;
}
signed main(){
cin >> T >> id;
while (T --) solve();
}