#include <bits/stdc++.h>
#define int long long
#define p2 (p<<1)
#define p3 ((p<<1)|1)
#define mid (l+r>>1)
#define f(i,l,r) for(int i=(l);i<=(r);++i)
#define g(i,r,l) for(int i=(r);i>=(l);--i)
using namespace std;
const int inf=0x3f3f3f3f3f3f3f3f,N=505;
int n,m,a,b;
int A[N][N];
int val[N];
int sum[N][N];
signed main(){
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
// system("pause");
cin>>n>>m>>a>>b;
if(a>b) swap(a,b);
f(i,1,n){
f(j,1,m){
cin>>A[i][j];
}
}
f(i,1,n){
f(j,1,m){
sum[i][j]+=sum[i-1][j]+A[i][j];
}
}
int ans=inf;
f(i,1,n){
f(j,i,n){
f(k,1,m) val[k]=sum[j][k]-sum[i-1][k];
int r=1,now=0;
f(l,1,m){
while(r<=m&&now+val[r]<=b) now+=val[r],r++;
ans=min(ans,abs(now-a)+abs(now-b));
now-=val[l];
}
r=1,now=0;
f(l,1,m){
while(r<=m&&now+val[r]<a) now+=val[r],r++;
ans=min(ans,abs(now-a)+abs(now-b));
now-=val[l];
}
r=1,now=0;
f(l,1,m){
while(r<=m){
if(now+val[r]>b){
now+=val[r];
r++;
break;
}else now+=val[r],r++;
}
ans=min(ans,abs(now-a)+abs(now-b));
now-=val[l];
}
}
}
cout<<ans;
}