/*Code by Bia Beniamin
Problem:
*/
/*
WI a;
a.RS(5,VI(5));
a[0][0]=5;

VI a;
a.RS(5);
a[0]=5;

PII a(4,5);
cout<<a.first<<a.second;

int n=6;
FORN(i,n)
{
cout<<i;
}

int n=6;
FORN(i,1,n)
{
cout<<i;
}

int n=6;
FORD(i,n,1)
{
cout<<i;
}

n=6;
UNTIL(n>0)
{
cout<<n;
--n;
}
*/


#include<vector>
#include<string>
#include<string.h>
#include<algorithm>
#include<cstdio>
#include<fstream>
#include<iostream>
#include<stdint.h>
#include<ctime>
#include<set>
#include<map>
#include<cmath>

using namespace std;

#define LL long long;
#define PII pair<int ,int>
#define PCI pair<char ,int>
#define VB vector <bool>
#define VI vector <int>
#define VC vector <char>
#define WI vector<VI>
#define RS resize
#define X first
#define Y second

#define FORN(i,n) for(int i=0;i<n;++i)
#define FOR(i,a,b) for(int i=a;i<=b;++i)
#define FORD(i,a,b) for(int i=a;i>=b;--i)
#define REPEAT do
#define UNTIL(x) while((x))

#define IN_FILE "date.in"
#define OUT_FILE "date.out"
ifstream f(IN_FILE);
ofstream g(OUT_FILE);

//variables
int n,max_answer;
WI sum, x;
//other functions
void reading()
{
	cin >> n;
	x.RS(n, VI(n));
	sum.RS(n, VI(n));
	FORN(i, n)
	{
		FORN(j, n)
		{
			cin >> x[i][j];
		}
	}
}
void solving()
{
	if (n == 1)
	{
		cout << x[0][0];
		return;
	}
	sum[0][0] = x[0][0];
	FOR(i,1, n-1)
	{
		sum[0][i] = sum[0][i - 1] + x[0][i];
		sum[i][0] = sum[i - 1][0] + x[i][0];
	}
	FOR(i,1, n-1)
	{
		FOR(j, 1, n - 1)
		{
			sum[i][j] = sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1]+x[i][j];
		}
	}
	FORN(i1, n)
	{
		FORN(j1, n)
		{
			FOR(i2, i1+1, n - 1)
			{
				FOR(j2, j1+1, n - 1)
				{
					if (j2 == 2 && i2 == 2 && j1==1)
					{
						n--;
						n++;
					}
					int aux;
					if (i1 == 0 && j1 == 0)
					{
						aux = 0;
					}
					else if (i1 == 0)
					{
						aux = sum[i2][j1-1];
					}
					else if (j1 == 0)
					{
						aux = sum[i1-1][j2];
					}
					else
					{
						aux = sum[i1 - 1][j1] + sum[i1][j1 - 1] - sum[i1 - 1][j1 - 1];
					}
					int aux3 = sum[i2-1][j2-1] - sum[i1][j2-1] - sum[i2-1][j1] + sum[i1][j1];
					if (i2 - i1 == 1 && j2 - j1 == 1)
					{
						aux3 = 0;
					}
					int aux2 = sum[i2][j2] - aux-aux3;
					max_answer = max(aux2,max_answer);
				}
			}
		}
	}
}
void write_data()
{ 
	if (n > 1)
	{
		cout << max_answer;
	}
}
int main()
{
	reading();
	solving();
	write_data();
}