#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int main() {
  ll n,m,w,x;
  while(cin >> m >> n >> w >> x && n) {
    ll e[n][m],f[n][m];
    for(int i=0; i<m; i++) {
      for(int j=0; j<n; j++) cin >> e[j][i];
    }
    for(int i=0; i<m; i++) {
      for(int j=0; j<n; j++) cin >> f[j][i];
    }
    ll dp[n+1][w+1][x+1],ans=0;
    for(int i=0;i<=n;i++)for(int j=0;j<=w;j++)for(int k=0;k<=x;k++)dp[i][j][k]=-1;
    dp[0][0][0]=0;
    for(int t=0; t<n; t++) {
      for(int l=0; l<=w; l++) {
        for(int k=0; k<=x; k++) {
          if(dp[t][l][k]==-1) continue;
          dp[t+1][l][k]=max(dp[t+1][l][k],dp[t][l][k]);
          for(int i=0; i<m; i++) {
            ll z=0,y=0,xx=0;
            for(int j=i; j<m; j++) {
              if(!e[t][j]) break;
              if(j!=i) y=1;
              xx+=e[t][j];
              z+=f[t][j];
              if(z+l<=w&&k+y<=x) dp[t+1][z+l][k+y]=max(dp[t+1][z+l][k+y],dp[t][l][k]+xx);
            }
          }
        }
      }
    }
    for(int l=0;l<=w;l++)for(int k=0;k<=x;k++)ans=max(ans,dp[n][l][k]);
    cout << ans << endl;
  }
  return 0;
}