#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
const int N = 1e3 + 5;
int n, k;
int a[N][N];
// - Quy ước:
// Hình chữ nhật (x1, y1, x2, y2) là hình chữ nhật có góc trái trên là (x1, y1) và góc phải dưới là (x2, y2)
ll sum[N][N]; // sum[x][y] = Tổng hình chữ nhật (1, 1, x, y)
// Tổng hình chữ nhật (x1, y1, x2, y2)
ll getSum(int x1, int y1, int x2, int y2) {
return sum[x2][y2] - sum[x1 - 1][y2] - sum[x2][y1 - 1] + sum[x1 - 1][y1 - 1];
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> k;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) cin >> a[i][j];
}
for (int x = 1; x <= n; x++) {
for (int y = 1; y <= n; y++) {
sum[x][y] = sum[x - 1][y] + sum[x][y - 1] - sum[x - 1][y - 1] + a[x][y];
}
}
ll ans = 0;
for (int x1 = 1; x1 + k - 1 <= n; x1++) {
for (int y1 = 1; y1 + k - 1 <= n; y1++) {
int x2 = x1 + k - 1, y2 = y1 + k - 1;
ans = max(ans, getSum(x1, y1, x2, y2));
}
}
cout << ans << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsgIAoKdHlwZWRlZiBsb25nIGxvbmcgbGw7ICAKdHlwZWRlZiBwYWlyPGludCwgaW50PiBpaTsgIAoKY29uc3QgaW50IElORiA9IDFlOTsgIApjb25zdCBsbCBMSU5GID0gMWUxODsgIAoKY29uc3QgaW50IE4gPSAxZTMgKyA1OyAKCmludCBuLCBrOyAgCmludCBhW05dW05dOyAgCgovLyAtIFF1eSDGsOG7m2M6IAovLyAgIEjDrG5oIGNo4buvIG5o4bqtdCAoeDEsIHkxLCB4MiwgeTIpIGzDoCBow6xuaCBjaOG7ryBuaOG6rXQgY8OzIGfDs2MgdHLDoWkgdHLDqm4gbMOgICh4MSwgeTEpIHbDoCBnw7NjIHBo4bqjaSBkxrDhu5tpIGzDoCAoeDIsIHkyKSAKCmxsIHN1bVtOXVtOXTsgLy8gc3VtW3hdW3ldID0gVOG7lW5nIGjDrG5oIGNo4buvIG5o4bqtdCAoMSwgMSwgeCwgeSkKCi8vIFThu5VuZyBow6xuaCBjaOG7ryBuaOG6rXQgKHgxLCB5MSwgeDIsIHkyKQpsbCBnZXRTdW0oaW50IHgxLCBpbnQgeTEsIGludCB4MiwgaW50IHkyKSB7CglyZXR1cm4gc3VtW3gyXVt5Ml0gLSBzdW1beDEgLSAxXVt5Ml0gLSBzdW1beDJdW3kxIC0gMV0gKyBzdW1beDEgLSAxXVt5MSAtIDFdOwp9CgppbnQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgCgljaW4udGllKG51bGxwdHIpOyAgCQoJY2luID4+IG4gPj4gazsgIAoKCWZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewoJCWZvciAoaW50IGogPSAxOyBqIDw9IG47IGorKykgY2luID4+IGFbaV1bal07IAoJfSAKCglmb3IgKGludCB4ID0gMTsgeCA8PSBuOyB4KyspIHsKCQlmb3IgKGludCB5ID0gMTsgeSA8PSBuOyB5KyspIHsKCQkJc3VtW3hdW3ldID0gc3VtW3ggLSAxXVt5XSArIHN1bVt4XVt5IC0gMV0gLSBzdW1beCAtIDFdW3kgLSAxXSArIGFbeF1beV07IAoJCX0KCX0KCglsbCBhbnMgPSAwOyAgCglmb3IgKGludCB4MSA9IDE7IHgxICsgayAtIDEgPD0gbjsgeDErKykgewoJCWZvciAoaW50IHkxID0gMTsgeTEgKyBrIC0gMSA8PSBuOyB5MSsrKSB7CgkJCWludCB4MiA9IHgxICsgayAtIDEsIHkyID0geTEgKyBrIC0gMTsgICAKCQkJYW5zID0gbWF4KGFucywgZ2V0U3VtKHgxLCB5MSwgeDIsIHkyKSk7IAoJCX0KCX0KCgljb3V0IDw8IGFucyA8PCAnXG4nOyAKfQo=