#include<bits/stdc++.h>
#define int long long
using namespace std;
const int MAXN=4e3+5,N=4e7+5;
int n,m,q,p,po,a[MAXN][MAXN],b[MAXN][MAXN],x,dp[N],w[N],v[N],num,cnt;
inline int read(){
int s=0,w=1;
char ch=getchar();
while(ch<='0'||ch>'9'){
if (ch=='-') w=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
return s*w;
}
signed main(){
n=read(),m=read(),q=read(),p=read();
po=min(q,p-1);
for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) scanf("%lld",&a[i][j]);
for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) scanf("%lld",&b[i][j]);
for(int i=1;i<=n;i++) for(int j=1;j<=m;j++){
if(!a[i][j]||!b[i][j]) continue;
cnt=2*(i+j);
x=b[i][j];
while(x--){
w[++num]=cnt;
v[num]=a[i][j];
}
}
for(int i=1;i<=num;i++) for(int j=po;j>=w[i];j--) dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
printf("%lld",dp[po]);
return 0;
}