#include <iostream>
using namespace std;

#define MAX_N 51
#define INF 1<<29

int b[MAX_N][MAX_N][MAX_N], v[MAX_N][MAX_N], n,maxim;

void readData()
{
	int i, j;

	cin >> n;

	maxim = -INF;
	
	for (i = 1; i <= n; i++)
	{
		for (j = 1; j <= n; j++)
		{
			cin >> v[i][j];
			b[i][j][1] = v[i][j];
		}
	}
}

void compute()
{
	int i, j, k, sum = 0;

	for (k = 2; k < n; k++)
	{
		for (i = k; i <= n; i++)
		{
			for (j = n - k + 1; j >= 1; j--)
			{
				b[i][j][k] = v[i][j] + b[i - 1][j][k - 1] + b[i][j + 1][k - 1] + v[i - k + 1][j + k - 1];
				if (k != 2) b[i][j][k] = b[i][j][k] - 2 * v[i - 1][j + 1];
				if (b[i][j][k] > maxim) maxim = b[i][j][k];
			}
		}
	}

	for (i = 1; i <= n; i++) sum = sum + v[1][i];
	for (i = 2; i <= n; i++) sum = sum + v[i][n];
	for (i = n - 1; i >= 1; i--) sum = sum + v[n][i];
	for (i = n - 1; i > 1; i--) sum = sum + v[i][1];

	if (sum > maxim) maxim = sum;

	cout << maxim;
}

int main()
{
	readData();
	compute();
	return 0;
}