#include<bits/stdc++.h>
using namespace std;
const int N=600;
int s[N][N],qz[N][N],n,m,a,b,l=0,r=2100000000;
bool xxx(int mid){
int ans=0,ll=1,ds=0;
for(int i=1;i<=n;i++){
ans=0;
int d=0;
for(int j=1;j<=m;j++){
if(ans+qz[i][j]-qz[ll-1][j]>=mid){
ans=0;
d++;
}
else{
ans+=qz[i][j]-qz[ll-1][j];
}
}
if(d>=b){
ll=i+1;
ds++;
}
}
return ds>=mid;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>m>>a>>b;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>s[i][j];
qz[i][j]=qz[i-1][j]+s[i][j];
}
}
while(l<r){
int mid=(r+l+1)>>1;
if(xxx(mid)){
l=mid;
}
else{
r=mid-1;
}
}
cout<<l;
return 0;
}