////////////////////////////////////////////////////////////////
//最大子矩阵和问题
#include<iostream>
using namespace std;
int MaxSum(int n,int *a)
{
int i;
int b;
b=0;
int max=0;
for(i=1;i<=n;i++)
{
if(b>0) b+=a[i];
else b=a[i];
if(b>max)
max=b;
}
return max;
}
int MaxSum2(int m,int n,int **a)
{
int i,j,k;
int temp,max=0;
int *b=new int[n+1];
for(i=1;i<=m;i++)
{
for(k=1;k<=n;k++) b[k]=0;
for(j=i;j<=m;j++)
{
for(k=1;k<=n;k++) b[k]+=a[j][k];
temp=MaxSum(n,b);
if(max<temp)
max=temp;
}
}
return max;
}
int main()
{
int n,i,j,ans;
cin>>n;
int **st=new int*[n+1];
for(i=0;i<=n;i++)
st[i]=new int[n+1];
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
cin>>st[i][j];
ans=MaxSum2(n,n,st);
cout<<ans<<endl;
return 0;
}