#include <cstdio>
#include <algorithm>
#include <fstream>
#include <iostream>
#include <vector>
#include <queue>
#include <map>
#include <cstring>
#include <string>
#include <set>
#include <stack>
#define pb push_back

#define mp make_pair
#define f first
#define s second
#define ll long long

const int MAXN = 55;
using namespace std;

int L[MAXN][MAXN], C[MAXN][MAXN];
int main() {
    //ifstream cin("test.in");
    //ofstream cout("test.out");
    
    int N;
    cin >> N;
    vector <vector <int> > matrix(N+1, vector <int>(N+1, 0));

    for (int i = 1; i <= N; ++i) {
        for (int j = 1; j <= N; ++j) {
            cin >> matrix[i][j] ;
            L[i][j] = L[i][j - 1] + matrix[i][j] ;
            C[i][j] = C[i - 1][j] + matrix[i][j];
        }
    }
    
    int answer = -1 << 30;

    for (int i = 1; i <= N; ++i) {
        for (int j = 1; j <= N; ++j) {
            answer = max(answer, matrix[i][j]);

            for (int ii = i + 1; ii <= N; ++ii) {
                for (int jj = j + 1; jj <= N; ++jj) {
                    if (ii - i != jj - j  ) {
                        continue;
                    }
                    
                    int l1 = L[ii][jj] - L[ii][j - 1];
                    int l2 = L[i][jj] - L[i][j - 1];

                    int c1 = C[ii][jj] - C[i - 1][jj];
                    int c2 = C[ii][j] - C[i - 1][j];
                    
                    int s = l1 + l2 + c1 + c2;
                    s -= matrix[ii][jj];
                    s -= matrix[i][j];
                    s -= matrix[i][jj];
                    s -= matrix[ii][j];

                    //cerr << i << " " << j << " " << ii << " " << jj << " " << s  << "\n"; 
                    answer = max(answer, s);
                }
            }
        }
    }
    cout << answer << "\n";    
    return 0;
}