#include <bits/stdc++.h>
using namespace std;
#define int long long
//#define ll int
typedef long long ll;
const int MAXN = 507;
int a[MAXN][MAXN], pre[MAXN][MAXN], n, m, A, B, ans = INT_MAX;
void precompute(){
cin >> n >> m >> A >> B;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++) cin >> a[i][j];
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++) pre[i][j] = pre[i][j - 1] + a[i][j] + pre[i - 1][j] - pre[i - 1][j - 1];
}
ll get2(int x, int y, int u, int v){
return pre[u][v] - pre[x - 1][v] - pre[u][y - 1] + pre[x - 1][y - 1];
}
ll get1(vector <int> &pre, int L, int R){
return pre[R] - pre[L - 1];
}
signed main(){
ios_base::sync_with_stdio(0);
cout.tie(0);
cin.tie(0);
freopen("hub03.inp", "r", stdin);
freopen("hub03.out", "w", stdout);
precompute();
for(int x = 1; x <= n; x++){
for(int u = x; u <= n; u++){
vector <int> pre2(m + 1, 0);
for(int v = 1; v <= m; v++)pre2[v] = get2(x, 1, u, v);
int L = 1;
for(int R = 1; R <= m; R++){
while(pre2[R] - pre2[L - 1] > A and L < R) L++;
int S1 = pre2[R] - pre2[L - 1];
ans = min(ans, abs(A - S1) + abs(B - S1));
if(L - 1){
int S2 = pre2[R] - pre2[L - 2];
ans = min(ans, abs(A - S2) + abs(B - S2));
}
}
}
}
cout << ans;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZwovLyNkZWZpbmUgbGwgaW50CnR5cGVkZWYgbG9uZyBsb25nIGxsOwpjb25zdCBpbnQgTUFYTiA9IDUwNzsKaW50IGFbTUFYTl1bTUFYTl0sIHByZVtNQVhOXVtNQVhOXSwgbiwgbSwgQSwgQiwgYW5zID0gSU5UX01BWDsKCnZvaWQgcHJlY29tcHV0ZSgpewoJY2luID4+IG4gPj4gbSAgPj4gQSA+PiBCOwoJZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspCgkJZm9yKGludCBqID0gMTsgaiA8PSBtOyBqKyspIGNpbiA+PiBhW2ldW2pdOwoJZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspCgkJZm9yKGludCBqID0gMTsgaiA8PSBtOyBqKyspIHByZVtpXVtqXSA9IHByZVtpXVtqIC0gMV0gKyBhW2ldW2pdICsgcHJlW2kgLSAxXVtqXSAtIHByZVtpIC0gMV1baiAtIDFdOwp9CgpsbCBnZXQyKGludCB4LCBpbnQgeSwgaW50IHUsIGludCB2KXsKCXJldHVybiBwcmVbdV1bdl0gLSBwcmVbeCAtIDFdW3ZdIC0gcHJlW3VdW3kgLSAxXSArIHByZVt4IC0gMV1beSAtIDFdOwp9CgpsbCBnZXQxKHZlY3RvciA8aW50PiAmcHJlLCBpbnQgTCwgaW50IFIpewoJcmV0dXJuIHByZVtSXSAtIHByZVtMIC0gMV07Cn0KCnNpZ25lZCBtYWluKCl7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwoJY291dC50aWUoMCk7CgljaW4udGllKDApOwoJZnJlb3BlbigiaHViMDMuaW5wIiwgInIiLCBzdGRpbik7CglmcmVvcGVuKCJodWIwMy5vdXQiLCAidyIsIHN0ZG91dCk7CglwcmVjb21wdXRlKCk7Cglmb3IoaW50IHggPSAxOyB4IDw9IG47IHgrKyl7CgkJZm9yKGludCB1ID0geDsgdSA8PSBuOyB1KyspewoJCSAgICB2ZWN0b3IgPGludD4gcHJlMihtICsgMSwgMCk7CgkJCWZvcihpbnQgdiA9IDE7IHYgPD0gbTsgdisrKXByZTJbdl0gPSBnZXQyKHgsIDEsIHUsIHYpOwoJCQlpbnQgTCA9IDE7CgkJCWZvcihpbnQgUiA9IDE7IFIgPD0gbTsgUisrKXsKCQkJCXdoaWxlKHByZTJbUl0gLSBwcmUyW0wgLSAxXSA+IEEgYW5kIEwgPCBSKSBMKys7CgkJCQlpbnQgUzEgPSBwcmUyW1JdIC0gcHJlMltMIC0gMV07CgkJCQlhbnMgPSBtaW4oYW5zLCBhYnMoQSAtIFMxKSArIGFicyhCIC0gUzEpKTsKCQkJCWlmKEwgLSAxKXsKCQkJCQlpbnQgUzIgPSBwcmUyW1JdIC0gcHJlMltMIC0gMl07CgkJCQkJYW5zID0gbWluKGFucywgYWJzKEEgLSBTMikgKyBhYnMoQiAtIFMyKSk7CgkJCQl9CgkJCX0KCQl9Cgl9Cgljb3V0IDw8IGFuczsKfQo=