#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
using pii = pair<int, int>;
template<typename X, typename Y>
bool chmax(X& a, Y b) { return (a < b) ? a = b, 1 : 0; }
template<typename X, typename Y>
bool chmin(X& a, Y b) { return (a > b) ? a = b, 1 : 0; }
const ll INF = 1e18;
const int N = 1005;
int n, m, k, T, a[N][N];
ll P[N][N];
inline ll get(int i, int j, int x) { return P[i][j] - P[i - x][j] - P[i][j - x] + P[i - x][j - x]; }
bool check(int x) {
for (int i = x; i <= n; i++)
for (int j = x; j <= m; j++)
if (get(i, j, x) <= T)
return true;
return false;
}
void solve() {
cin >> n >> m >> k >> T;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++) {
cin >> a[i][j];
P[i][j] = P[i - 1][j] + P[i][j - 1] - P[i - 1][j - 1] + a[i][j];
}
if (k == 1) {
int low = 1, high = n, ans = 0;
while (low <= high) {
int mid = low + (high - low) / 2;
if (check(mid)) ans = mid, low = mid + 1;
else high = mid - 1;
}
cout << ans * ans << '\n';
return;
}
int X = min(n, m);
vector<vector<ll>> top(n + 5, vector<ll>(X + 5, INF)), bottom(n + 5, vector<ll>(X + 5, INF));
vector<vector<ll>> left(m + 5, vector<ll>(X + 5, INF)), right(m + 5, vector<ll>(X + 5, INF));
for (int x = 1; x <= X; x++) {
for (int i = x; i <= n; i++)
for (int j = x; j <= m; j++) {
ll S = get(i, j, x);
if (S > T) continue;
chmin(top[i][x], S); chmin(bottom[i - x + 1][x], S);
chmin(left[j][x], S); chmin(right[j - x + 1][x], S);
}
for (int i = 1; i <= n; i++) chmin(top[i][x], top[i - 1][x]);
for (int i = n; i >= 1; i--) chmin(bottom[i][x], bottom[i + 1][x]);
for (int j = 1; j <= m; j++) chmin(left[j][x], left[j - 1][x]);
for (int j = m; j >= 1; j--) chmin(right[j][x], right[j + 1][x]);
}
int ans = 0;
for (int i = 1; i < n; i++) {
int X1 = min(i, X), X2 = min(n - i, X);
for (int x1 = 1; x1 <= X1; x1++) {
if (top[i][x1] > T) continue;
for (int x2 = 1; x2 <= X2; x2++)
if (top[i][x1] + bottom[i + 1][x2] <= T)
ans = max(ans, x1 * x1 + x2 * x2);
}
}
for (int j = 1; j < m; j++) {
int X1 = min(j, X), X2 = min(m - j, X);
for (int x1 = 1; x1 <= X1; x1++) {
if (left[j][x1] > T) continue;
for (int x2 = 1; x2 <= X2; x2++)
if (left[j][x1] + right[j + 1][x2] <= T)
ans = max(ans, x1 * x1 + x2 * x2);
}
}
cout << ans << '\n';
}
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL);
#define TASK "LAND"
if (fopen(TASK".INP", "r")) {
freopen(TASK".INP", "r", stdin);
freopen(TASK".OUT", "w", stdout);
}
int tests = 1; // cin >> tests;
while (tests--) solve();
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnVzaW5nIGxsID0gbG9uZyBsb25nOwp1c2luZyB1bGwgPSB1bnNpZ25lZCBsb25nIGxvbmc7CnVzaW5nIHBpaSA9IHBhaXI8aW50LCBpbnQ+OwoKdGVtcGxhdGU8dHlwZW5hbWUgWCwgdHlwZW5hbWUgWT4KYm9vbCBjaG1heChYJiBhLCBZIGIpIHsgcmV0dXJuIChhIDwgYikgPyBhID0gYiwgMSA6IDA7IH0KdGVtcGxhdGU8dHlwZW5hbWUgWCwgdHlwZW5hbWUgWT4KYm9vbCBjaG1pbihYJiBhLCBZIGIpIHsgcmV0dXJuIChhID4gYikgPyBhID0gYiwgMSA6IDA7IH0KCmNvbnN0IGxsIElORiA9IDFlMTg7CmNvbnN0IGludCBOID0gMTAwNTsKCmludCBuLCBtLCBrLCBULCBhW05dW05dOwpsbCBQW05dW05dOwoKaW5saW5lIGxsIGdldChpbnQgaSwgaW50IGosIGludCB4KSB7IHJldHVybiBQW2ldW2pdIC0gUFtpIC0geF1bal0gLSBQW2ldW2ogLSB4XSArIFBbaSAtIHhdW2ogLSB4XTsgfQoKYm9vbCBjaGVjayhpbnQgeCkgewogICAgZm9yIChpbnQgaSA9IHg7IGkgPD0gbjsgaSsrKQogICAgICAgIGZvciAoaW50IGogPSB4OyBqIDw9IG07IGorKykKICAgICAgICAgICAgaWYgKGdldChpLCBqLCB4KSA8PSBUKQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICByZXR1cm4gZmFsc2U7Cn0KCnZvaWQgc29sdmUoKSB7CiAgICBjaW4gPj4gbiA+PiBtID4+IGsgPj4gVDsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKICAgICAgICBmb3IgKGludCBqID0gMTsgaiA8PSBtOyBqKyspIHsKICAgICAgICAgICAgY2luID4+IGFbaV1bal07CiAgICAgICAgICAgIFBbaV1bal0gPSBQW2kgLSAxXVtqXSArIFBbaV1baiAtIDFdIC0gUFtpIC0gMV1baiAtIDFdICsgYVtpXVtqXTsKICAgICAgICB9CiAgICBpZiAoayA9PSAxKSB7CiAgICAgICAgaW50IGxvdyA9IDEsIGhpZ2ggPSBuLCBhbnMgPSAwOwogICAgICAgIHdoaWxlIChsb3cgPD0gaGlnaCkgewogICAgICAgICAgICBpbnQgbWlkID0gbG93ICsgKGhpZ2ggLSBsb3cpIC8gMjsKICAgICAgICAgICAgaWYgKGNoZWNrKG1pZCkpIGFucyA9IG1pZCwgbG93ID0gbWlkICsgMTsKICAgICAgICAgICAgZWxzZSBoaWdoID0gbWlkIC0gMTsKICAgICAgICB9CiAgICAgICAgY291dCA8PCBhbnMgKiBhbnMgPDwgJ1xuJzsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpbnQgWCA9IG1pbihuLCBtKTsKICAgIHZlY3Rvcjx2ZWN0b3I8bGw+PiB0b3AobiArIDUsIHZlY3RvcjxsbD4oWCArIDUsIElORikpLCBib3R0b20obiArIDUsIHZlY3RvcjxsbD4oWCArIDUsIElORikpOwogICAgdmVjdG9yPHZlY3RvcjxsbD4+IGxlZnQobSArIDUsIHZlY3RvcjxsbD4oWCArIDUsIElORikpLCByaWdodChtICsgNSwgdmVjdG9yPGxsPihYICsgNSwgSU5GKSk7CiAgICBmb3IgKGludCB4ID0gMTsgeCA8PSBYOyB4KyspIHsKICAgICAgICBmb3IgKGludCBpID0geDsgaSA8PSBuOyBpKyspCiAgICAgICAgICAgIGZvciAoaW50IGogPSB4OyBqIDw9IG07IGorKykgewogICAgICAgICAgICAgICAgbGwgUyA9IGdldChpLCBqLCB4KTsKICAgICAgICAgICAgICAgIGlmIChTID4gVCkgY29udGludWU7CiAgICAgICAgICAgICAgICBjaG1pbih0b3BbaV1beF0sIFMpOyBjaG1pbihib3R0b21baSAtIHggKyAxXVt4XSwgUyk7CiAgICAgICAgICAgICAgICBjaG1pbihsZWZ0W2pdW3hdLCBTKTsgY2htaW4ocmlnaHRbaiAtIHggKyAxXVt4XSwgUyk7CiAgICAgICAgICAgIH0KICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIGNobWluKHRvcFtpXVt4XSwgdG9wW2kgLSAxXVt4XSk7CiAgICAgICAgZm9yIChpbnQgaSA9IG47IGkgPj0gMTsgaS0tKSBjaG1pbihib3R0b21baV1beF0sIGJvdHRvbVtpICsgMV1beF0pOwogICAgICAgIGZvciAoaW50IGogPSAxOyBqIDw9IG07IGorKykgY2htaW4obGVmdFtqXVt4XSwgbGVmdFtqIC0gMV1beF0pOwogICAgICAgIGZvciAoaW50IGogPSBtOyBqID49IDE7IGotLSkgY2htaW4ocmlnaHRbal1beF0sIHJpZ2h0W2ogKyAxXVt4XSk7CiAgICB9CiAgICBpbnQgYW5zID0gMDsKICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgaW50IFgxID0gbWluKGksIFgpLCBYMiA9IG1pbihuIC0gaSwgWCk7CiAgICAgICAgZm9yIChpbnQgeDEgPSAxOyB4MSA8PSBYMTsgeDErKykgewogICAgICAgICAgICBpZiAodG9wW2ldW3gxXSA+IFQpIGNvbnRpbnVlOwogICAgICAgICAgICBmb3IgKGludCB4MiA9IDE7IHgyIDw9IFgyOyB4MisrKQogICAgICAgICAgICAgICAgaWYgKHRvcFtpXVt4MV0gKyBib3R0b21baSArIDFdW3gyXSA8PSBUKQogICAgICAgICAgICAgICAgICAgIGFucyA9IG1heChhbnMsIHgxICogeDEgKyB4MiAqIHgyKTsKICAgICAgICB9CiAgICB9CiAgICBmb3IgKGludCBqID0gMTsgaiA8IG07IGorKykgewogICAgICAgIGludCBYMSA9IG1pbihqLCBYKSwgWDIgPSBtaW4obSAtIGosIFgpOwogICAgICAgIGZvciAoaW50IHgxID0gMTsgeDEgPD0gWDE7IHgxKyspIHsKICAgICAgICAgICAgaWYgKGxlZnRbal1beDFdID4gVCkgY29udGludWU7CiAgICAgICAgICAgIGZvciAoaW50IHgyID0gMTsgeDIgPD0gWDI7IHgyKyspCiAgICAgICAgICAgICAgICBpZiAobGVmdFtqXVt4MV0gKyByaWdodFtqICsgMV1beDJdIDw9IFQpCiAgICAgICAgICAgICAgICAgICAgYW5zID0gbWF4KGFucywgeDEgKiB4MSArIHgyICogeDIpOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgYW5zIDw8ICdcbic7Cn0KCmludCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IGNpbi50aWUoTlVMTCk7CgogICAgI2RlZmluZSBUQVNLICJMQU5EIgogICAgaWYgKGZvcGVuKFRBU0siLklOUCIsICJyIikpIHsKICAgICAgICBmcmVvcGVuKFRBU0siLklOUCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4oVEFTSyIuT1VUIiwgInciLCBzdGRvdXQpOwogICAgfQoKICAgIGludCB0ZXN0cyA9IDE7IC8vIGNpbiA+PiB0ZXN0czsKICAgIHdoaWxlICh0ZXN0cy0tKSBzb2x2ZSgpOwoKICAgIHJldHVybiAwOwp9