#include <iostream>
#include <vector>
#include <algorithm>
#include <climits>
using namespace std;
int main() {
int n;
cin >> n;
if (n == 1) {
cout << 0 << endl;
return 0;
}
vector<vector<int>> grid(n, vector<int>(n));
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> grid[i][j];
}
}
vector<vector<int>> prefix(n);
for (int j = 0; j < n; j++) {
prefix[j].resize(n);
prefix[j][0] = grid[0][j];
for (int i = 1; i < n; i++) {
prefix[j][i] = prefix[j][i-1] + grid[i][j];
}
}
auto get_risk = [&](int col, int a, int b, int c) {
int low, high;
if (col == 0) {
low = b;
high = c;
} else if (col == n-1) {
low = b;
high = a;
} else {
low = b;
high = max(a, c);
}
if (high <= low) return 0;
int start = low;
int end = min(high - 1, n-1);
if (start > end) return 0;
int sum = prefix[col][end];
if (start > 0) sum -= prefix[col][start-1];
return sum;
};
vector<vector<int>> dp(n+1, vector<int>(n+1, INT_MIN));
for (int a = 0; a <= n; a++) {
for (int b = 0; b <= n; b++) {
int risk = get_risk(0, 0, a, b);
dp[a][b] = risk;
}
}
for (int j = 2; j < n; j++) {
vector<vector<int>> new_dp(n+1, vector<int>(n+1, INT_MIN));
for (int a = 0; a <= n; a++) {
for (int b = 0; b <= n; b++) {
if (dp[a][b] == INT_MIN) continue;
for (int c = 0; c <= n; c++) {
int risk = get_risk(j-1, a, b, c);
int total = dp[a][b] + risk;
if (total > new_dp[b][c]) {
new_dp[b][c] = total;
}
}
}
}
dp = move(new_dp);
}
int ans = 0;
for (int a = 0; a <= n; a++) {
for (int b = 0; b <= n; b++) {
if (dp[a][b] == INT_MIN) continue;
int risk = get_risk(n-1, a, b, 0);
int total = dp[a][b] + risk;
if (total > ans) ans = total;
}
}
cout << ans << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8Y2xpbWl0cz4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGludCBuOwogICAgY2luID4+IG47CiAgICBpZiAobiA9PSAxKSB7CiAgICAgICAgY291dCA8PCAwIDw8IGVuZGw7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CiAgICB2ZWN0b3I8dmVjdG9yPGludD4+IGdyaWQobiwgdmVjdG9yPGludD4obikpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG47IGorKykgewogICAgICAgICAgICBjaW4gPj4gZ3JpZFtpXVtqXTsKICAgICAgICB9CiAgICB9CgogICAgdmVjdG9yPHZlY3RvcjxpbnQ+PiBwcmVmaXgobik7CiAgICBmb3IgKGludCBqID0gMDsgaiA8IG47IGorKykgewogICAgICAgIHByZWZpeFtqXS5yZXNpemUobik7CiAgICAgICAgcHJlZml4W2pdWzBdID0gZ3JpZFswXVtqXTsKICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IG47IGkrKykgewogICAgICAgICAgICBwcmVmaXhbal1baV0gPSBwcmVmaXhbal1baS0xXSArIGdyaWRbaV1bal07CiAgICAgICAgfQogICAgfQoKICAgIGF1dG8gZ2V0X3Jpc2sgPSBbJl0oaW50IGNvbCwgaW50IGEsIGludCBiLCBpbnQgYykgewogICAgICAgIGludCBsb3csIGhpZ2g7CiAgICAgICAgaWYgKGNvbCA9PSAwKSB7CiAgICAgICAgICAgIGxvdyA9IGI7CiAgICAgICAgICAgIGhpZ2ggPSBjOwogICAgICAgIH0gZWxzZSBpZiAoY29sID09IG4tMSkgewogICAgICAgICAgICBsb3cgPSBiOwogICAgICAgICAgICBoaWdoID0gYTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBsb3cgPSBiOwogICAgICAgICAgICBoaWdoID0gbWF4KGEsIGMpOwogICAgICAgIH0KICAgICAgICBpZiAoaGlnaCA8PSBsb3cpIHJldHVybiAwOwogICAgICAgIGludCBzdGFydCA9IGxvdzsKICAgICAgICBpbnQgZW5kID0gbWluKGhpZ2ggLSAxLCBuLTEpOwogICAgICAgIGlmIChzdGFydCA+IGVuZCkgcmV0dXJuIDA7CiAgICAgICAgaW50IHN1bSA9IHByZWZpeFtjb2xdW2VuZF07CiAgICAgICAgaWYgKHN0YXJ0ID4gMCkgc3VtIC09IHByZWZpeFtjb2xdW3N0YXJ0LTFdOwogICAgICAgIHJldHVybiBzdW07CiAgICB9OwoKICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gZHAobisxLCB2ZWN0b3I8aW50PihuKzEsIElOVF9NSU4pKTsKICAgIGZvciAoaW50IGEgPSAwOyBhIDw9IG47IGErKykgewogICAgICAgIGZvciAoaW50IGIgPSAwOyBiIDw9IG47IGIrKykgewogICAgICAgICAgICBpbnQgcmlzayA9IGdldF9yaXNrKDAsIDAsIGEsIGIpOwogICAgICAgICAgICBkcFthXVtiXSA9IHJpc2s7CiAgICAgICAgfQogICAgfQoKICAgIGZvciAoaW50IGogPSAyOyBqIDwgbjsgaisrKSB7CiAgICAgICAgdmVjdG9yPHZlY3RvcjxpbnQ+PiBuZXdfZHAobisxLCB2ZWN0b3I8aW50PihuKzEsIElOVF9NSU4pKTsKICAgICAgICBmb3IgKGludCBhID0gMDsgYSA8PSBuOyBhKyspIHsKICAgICAgICAgICAgZm9yIChpbnQgYiA9IDA7IGIgPD0gbjsgYisrKSB7CiAgICAgICAgICAgICAgICBpZiAoZHBbYV1bYl0gPT0gSU5UX01JTikgY29udGludWU7CiAgICAgICAgICAgICAgICBmb3IgKGludCBjID0gMDsgYyA8PSBuOyBjKyspIHsKICAgICAgICAgICAgICAgICAgICBpbnQgcmlzayA9IGdldF9yaXNrKGotMSwgYSwgYiwgYyk7CiAgICAgICAgICAgICAgICAgICAgaW50IHRvdGFsID0gZHBbYV1bYl0gKyByaXNrOwogICAgICAgICAgICAgICAgICAgIGlmICh0b3RhbCA+IG5ld19kcFtiXVtjXSkgewogICAgICAgICAgICAgICAgICAgICAgICBuZXdfZHBbYl1bY10gPSB0b3RhbDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZHAgPSBtb3ZlKG5ld19kcCk7CiAgICB9CgogICAgaW50IGFucyA9IDA7CiAgICBmb3IgKGludCBhID0gMDsgYSA8PSBuOyBhKyspIHsKICAgICAgICBmb3IgKGludCBiID0gMDsgYiA8PSBuOyBiKyspIHsKICAgICAgICAgICAgaWYgKGRwW2FdW2JdID09IElOVF9NSU4pIGNvbnRpbnVlOwogICAgICAgICAgICBpbnQgcmlzayA9IGdldF9yaXNrKG4tMSwgYSwgYiwgMCk7CiAgICAgICAgICAgIGludCB0b3RhbCA9IGRwW2FdW2JdICsgcmlzazsKICAgICAgICAgICAgaWYgKHRvdGFsID4gYW5zKSBhbnMgPSB0b3RhbDsKICAgICAgICB9CiAgICB9CgogICAgY291dCA8PCBhbnMgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQ==