#include<stdio.h>
long int ok,sum[550],sum2[550],s2,k,su,v[19],max,i,j,x,aux,n,m,l,c,a[550][19];
void cre(long int *v, long int n){
long int i,aux,c,p;
for (i=2;i<=n;i++) {
//introduc v[i] in heap
c = i;
p = i>>1;
while ((p)&&(v[c]>v[p])) {
aux = v[c];
v[c] = v[p];
v[p] = aux;
c = p;
p = p>>1;
}
}
}
void corect(long int poz, long int *v, long int n){
long int aux,p,c;
p = poz;
c = p<<1;
while (c<=n) {
if ((c+1<=n) && (v[c+1]>v[c]))
c++;
if (v[c]>v[p]) {
aux = v[c];
v[c] = v[p];
v[p] = aux;
p = c;
c = p<<1;
} else break;
}
}
void s(long int *v, long int n) {
long int i,aux,p,c;
cre(v,n);
for (i=n;i>1;i--) {
aux = v[1];
v[1] = v[i];
v[i] = aux;
corect(1,v,i-1);
}
}
int main(){
FILE *f=fopen("elimin.in","r");
fscanf(f,"%ld %ld %ld %ld",&n,&m,&l,&c);
max=-32001;
if(n>=m){
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
fscanf(f,"%d",&a[i][j]);
su+=a[i][j];
}
}
}
else{
for(i=1;i<=n;i++){
for(j=m;j>=1;j--){
fscanf(f,"%d",&a[j][i]);
su+=a[j][i];
}
}
aux=n; n=m; m=aux;
aux=c; c=l; l=aux;
}
for(j=1;j<=n;j++){
for(k=1;k<=m;k++){
sum[j]+=a[j][k];
}
}
for(i=0;i<=(1<<m)-1;i++){
for(j=m-1;j>=0;j--){
v[j+1]=(i>>j)&1;
}
x=0;
for(j=1;j<=m;j++){
if(v[j]==1)x++;
}
if(x==c){
s2=su;
for(j=1;j<=n;j++){
sum2[j]=sum[j];
}
for(j=1;j<=m;j++){
if(v[j]==1){
for(k=1;k<=n;k++){
s2-=a[k][j];
sum2[k]-=a[k][j];
}
}
}
s(sum2,n);
for(k=1;k<=l;k++){
s2-=sum2[k];
}
if(s2>max)max=s2;
}
}
fclose(f);
FILE *g=fopen("elimin.out","w");
fprintf(g,"%ld",max);
fclose(g);
return 0;
}