#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream>
#include<math.h>
#include<vector>
const int inf = 0x3f3f3f;
using namespace std;
int dp[110],n,a[110][110],sum[110],maxx;
int main()
{
while(scanf("%d",&n) != EOF)
{
maxx = -inf;
for(int i = 1 ; i <= n ; i++)
{
for(int j = 1 ; j <= n ; j++)
scanf("%d",&a[i][j]);
}
for(int i = 1 ; i <= n ; i++)
{
memset(sum,0,sizeof(sum));
for(int j = i ; j <= n ; j++)
{
for(int k = 1 ; k <= n ; k++)
sum[k] += a[j][k];
dp[0] = 0;
for(int i = 1 ; i <= n ; i++)
{
if(dp[i-1] + sum[i] < 0 || dp[i-1] < 0)
{
dp[i] = sum[i];
}
else
dp[i] = dp[i-1] + sum[i];
}
for(int i = 1 ; i <= n ; i++)
{
if(maxx < dp[i])
maxx = dp[i];
}
}
}
printf("%d\n",maxx);
}
}
#include<stdlib.h>
#include<string.h>
#include<iostream>
#include<math.h>
#include<vector>
const int inf = 0x3f3f3f;
using namespace std;
int dp[110],n,a[110][110],sum[110],maxx;
int main()
{
while(scanf("%d",&n) != EOF)
{
maxx = -inf;
for(int i = 1 ; i <= n ; i++)
{
for(int j = 1 ; j <= n ; j++)
scanf("%d",&a[i][j]);
}
for(int i = 1 ; i <= n ; i++)
{
memset(sum,0,sizeof(sum));
for(int j = i ; j <= n ; j++)
{
for(int k = 1 ; k <= n ; k++)
sum[k] += a[j][k];
dp[0] = 0;
for(int i = 1 ; i <= n ; i++)
{
if(dp[i-1] + sum[i] < 0 || dp[i-1] < 0)
{
dp[i] = sum[i];
}
else
dp[i] = dp[i-1] + sum[i];
}
for(int i = 1 ; i <= n ; i++)
{
if(maxx < dp[i])
maxx = dp[i];
}
}
}
printf("%d\n",maxx);
}
}