#include<iostream>
#include<fstream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<string>
#include<queue>
#define in cin
#define out cout
#define abs(x) ((x>0)?(x):(-(x)))
#define max(a, b) (a > b ? a : b)
#define min(a, b) (a < b ? a : b)
#define FOR(i, a, b) for(int i = a; i <= b; ++i)
#define DOWNFOR(i, a, b) for(int i = a; i >= b; --i)
#define FOREACH(i, t) for (typeof(t.begin()) i = t.begin(); i != t.end(); ++i)
#define ll long long
using namespace std;
int N;
int A[55][55];
int S[55][55];
int Max=-(1<<30);
int main(){
    #ifndef ONLINE_JUDGE
    ifstream in("test.in");
    ofstream out("test.out");
    #endif
    in>>N;
    FOR(i,1,N) FOR(j,1,N) in>>A[i][j];
    FOR(i,1,N) FOR(j,1,N) S[i][j]=S[i-1][j]+S[i][j-1]-S[i-1][j-1]+A[i][j];
    FOR(i,1,N) FOR(j,1,N){
        Max=max(Max,A[i][j]);
        for(int k=1;max(i,j)+k<=N;k++){
            int sum=S[i+k][j+k]-S[i+k][j-1]-S[i-1][j+k]+S[i-1][j-1];
            int ssum=S[i+k-1][j+k-1]-S[i+k-1][j]-S[i][j+k-1]+S[i][j];
            Max=max(Max,sum-ssum);
        }
    }
    out<<Max<<'\n';
    return 0;
}