#include <bits/stdc++.h>
using namespace std;
int N, A[105][105], sum[105][105], column[105], maxS = INT_MIN;
// 最大子数组和
int calculate(){
vector<int> dp(N + 1);
int ret = INT_MIN;
for(int i = 1; i <= N; i++){
dp[i] = max(column[i], dp[i - 1] + column[i]);
ret = max(ret, dp[i]);
}
return ret;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin >> N;
for(int i = 1; i <= N; i++){
for(int j = 1; j <= N; j++){
cin >> A[i][j];
sum[i][j] = sum[i - 1][j] + A[i][j]; // 计算每列的前缀和
}
}
for(int i = 1; i <= N; i++){ // 起始行
for(int j = i; j <= N; j++){ // 终止行
for(int k = 1; k <= N; k++){ // 计算 i~j行 第k列的和
column[k] = sum[j][k] - sum[i - 1][k];
}
maxS = max(maxS, calculate());
}
}
cout << maxS;
return 0;
}