#include <bits/stdc++.h>
using namespace std;
const int N=1005,P=998244353;
int cnt[N][N],cnt2[N][N],C[N][N];
char a[N][N];
void slv()
{
	int T,id;
	scanf("%d%d",&T,&id);
	while(T--)
	{
		memset(a,0,sizeof(a));
		memset(C,0,sizeof(C));
		memset(cnt,0,sizeof(cnt));
		memset(cnt2,0,sizeof(cnt2));
		int n,m,c,f;
		scanf("%d%d%d%d",&n,&m,&c,&f);
		for(int i=1;i<=n;i++)
		{
			scanf("%s",a[i]+1);
		}
		for(int i=1;i<=n;i++)
		{
			for(int j=m;j;j--)
			{
				if(a[i][j]=='0') cnt[i][j]=cnt[i][j+1]+1;
			}
		}
		for(int i=1;i<=m;i++)
		{
			for(int j=n;j;j--)
			{
				if(a[j][i]=='0') cnt2[j][i]=cnt2[j+1][i]+1;
			}
		}
		long long ans1=0,ans2=0;
		for(int i=1;i<=m;i++)
		{
			for(int j=1;j<=n;j++)
			{
				if(a[j][i]=='0')
				{
					C[j][i]=C[j-1][i]+cnt[j][i]-1;
					if(j>2&&a[j-1][i]=='0')
					{
						ans1+=1ll*C[j-2][i]*(cnt[j][i]-1)%P;
//						printf("%d %d %d %d\n",j,i,C[j-1][i],cnt[j][i]-1);
						ans2+=1ll*C[j-2][i]*(cnt[j][i]-1)%P*cnt2[j+1][i]%P;
					}
				}
			}
		}
		printf("%lld %lld\n",ans1%P*c,ans2%P*f);
	}
}
int main()
{
	freopen("plant.in","r",stdin);
	freopen("plant.out","w",stdout);
	slv();
	fclose(stdin);
	fclose(stdout);
	return 0;
}
