#include <string>       // std::string
#include <iostream>     // std::cout
#include <sstream> 
#include <climits>

using namespace std;

int n;

int main()
{
    string tmp;
    getline(cin, tmp);
    stringstream ss(tmp);
    ss >> n; 

    // read
    int a[n][n];
    int i,j;
    for(i=0; i<n; i++)
    {
        string l;
        getline(cin, l);
        stringstream ls(l);
        for(j=0; j<n; j++) ls >> a[i][j];
    }

    // find
    int max = INT_MIN;
    for(int i1=0; i1<n; i1++)
        for(int j1=0; j1<n; j1++)
            for(int i2=i1; i2<n; i2++)
                for(int j2=0; j2<n; j2++)
                {
                    int val = 0;

                    // compute val
                    int min_i = i1 < i2 ? i1 : i2;
                    int min_j = j1 < j2 ? j1 : j2;
                    int max_i = i1 > i2 ? i1 : i2;
                    int max_j = j1 > j2 ? j1 : j2;

                    // up & down border
                    for(int k=0; k <= (max_j-min_j); k++) 
                    {
                        val+=a[min_i][k + min_j];
                        if (max_i != min_i) { val+=a[max_i][k + min_j]; }
                    }

                    // left & right
                    for(int k=1; k < (max_i-min_i); k++)
                    {
                        val+=a[k + min_i][min_j];
                        if (max_j != min_j) { val+=a[k + min_i][max_j]; }
                    }

                    if (val > max) { max = val; }
                }
 
    cout << max;   
}