#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
vector<vector<int>> a(n, vector<int>(n));
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
cin >> a[i][j];
int best = INT_MIN;
for (int L = 0; L < n; ++L) {
vector<int> sum(n, 0); // 行累计和
for (int R = L; R < n; ++R) {
for (int i = 0; i < n; ++i) // 把第 R 列加入
sum[i] += a[i][R];
// Kadane: 一维最大子段和
int cur = sum[0], mx = sum[0];
for (int i = 1; i < n; ++i) {
cur = max(sum[i], cur + sum[i]);
mx = max(mx, cur);
}
best = max(best, mx);
}
}
cout << best << '\n';
return 0;
}