#include <bits/stdc++.h>
#define pii pair<int,int>
#define endl cout<<"\n";
#define fi first
#define int long long
#define se second
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define op freopen
#define TXT "test"
#define freo if(fopen(TXT".inp","r")){op(TXT".inp","r",stdin);op(TXT".out","w",stdout);}
using namespace std;
const int MAXN = 1005;
int n, m, p, q;
int a[MAXN][MAXN], minRow[MAXN][MAXN], minMat[MAXN][MAXN];
int32_t main() {
ios;
freo;
cin >> n >> m >> p >> q;
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++) {
deque<int> dq;
for (int j = 1; j <= m; j++) {
while (!dq.empty() && dq.front() < j - q + 1) dq.pop_front();
while (!dq.empty() && a[i][dq.back()] >= a[i][j]) dq.pop_back();
dq.push_back(j);
if (j >= q) {
minRow[i][j - q + 1] = a[i][dq.front()];
}
}
}
for (int j = 1; j <= m - q + 1; j++) {
deque<int> dq;
for (int i = 1; i <= n; i++) {
while (!dq.empty() && dq.front() < i - p + 1) dq.pop_front();
while (!dq.empty() && minRow[dq.back()][j] >= minRow[i][j]) dq.pop_back();
dq.push_back(i);
if (i >= p) {
minMat[i - p + 1][j] = minRow[dq.front()][j];
}
}
}
int MAX = LLONG_MIN;
for (int i = 1; i <= n - p + 1; i++) {
for (int j = 1; j <= m - q + 1; j++) {
MAX = max(MAX, minMat[i][j]);
}
}
cout << MAX;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgcGlpIHBhaXI8aW50LGludD4KI2RlZmluZSBlbmRsIGNvdXQ8PCJcbiI7CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgaW9zIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKE5VTEwpOyBjb3V0LnRpZShOVUxMKTsKI2RlZmluZSBvcCBmcmVvcGVuCiNkZWZpbmUgVFhUICJ0ZXN0IgojZGVmaW5lIGZyZW8gaWYoZm9wZW4oVFhUIi5pbnAiLCJyIikpe29wKFRYVCIuaW5wIiwiciIsc3RkaW4pO29wKFRYVCIub3V0IiwidyIsc3Rkb3V0KTt9Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE1BWE4gPSAxMDA1OwppbnQgbiwgbSwgcCwgcTsKaW50IGFbTUFYTl1bTUFYTl0sIG1pblJvd1tNQVhOXVtNQVhOXSwgbWluTWF0W01BWE5dW01BWE5dOwoKaW50MzJfdCBtYWluKCkgewogICAgaW9zOwogICAgZnJlbzsKICAgIGNpbiA+PiBuID4+IG0gPj4gcCA+PiBxOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPD0gbTsgaisrKSB7CiAgICAgICAgICAgIGNpbiA+PiBhW2ldW2pdOwogICAgICAgIH0KICAgIH0KICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgIGRlcXVlPGludD4gZHE7CiAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPD0gbTsgaisrKSB7CiAgICAgICAgICAgIHdoaWxlICghZHEuZW1wdHkoKSAmJiBkcS5mcm9udCgpIDwgaiAtIHEgKyAxKSBkcS5wb3BfZnJvbnQoKTsKICAgICAgICAgICAgd2hpbGUgKCFkcS5lbXB0eSgpICYmIGFbaV1bZHEuYmFjaygpXSA+PSBhW2ldW2pdKSBkcS5wb3BfYmFjaygpOwogICAgICAgICAgICBkcS5wdXNoX2JhY2soaik7CiAgICAgICAgICAgIGlmIChqID49IHEpIHsKICAgICAgICAgICAgICAgIG1pblJvd1tpXVtqIC0gcSArIDFdID0gYVtpXVtkcS5mcm9udCgpXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGZvciAoaW50IGogPSAxOyBqIDw9IG0gLSBxICsgMTsgaisrKSB7CiAgICAgICAgZGVxdWU8aW50PiBkcTsKICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICAgICAgd2hpbGUgKCFkcS5lbXB0eSgpICYmIGRxLmZyb250KCkgPCBpIC0gcCArIDEpIGRxLnBvcF9mcm9udCgpOwogICAgICAgICAgICB3aGlsZSAoIWRxLmVtcHR5KCkgJiYgbWluUm93W2RxLmJhY2soKV1bal0gPj0gbWluUm93W2ldW2pdKSBkcS5wb3BfYmFjaygpOwogICAgICAgICAgICBkcS5wdXNoX2JhY2soaSk7CiAgICAgICAgICAgIGlmIChpID49IHApIHsKICAgICAgICAgICAgICAgIG1pbk1hdFtpIC0gcCArIDFdW2pdID0gbWluUm93W2RxLmZyb250KCldW2pdOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgaW50IE1BWCA9IExMT05HX01JTjsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG4gLSBwICsgMTsgaSsrKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPD0gbSAtIHEgKyAxOyBqKyspIHsKICAgICAgICAgICAgTUFYID0gbWF4KE1BWCwgbWluTWF0W2ldW2pdKTsKICAgICAgICB9CiAgICB9CgogICAgY291dCA8PCBNQVg7Cn0K