#include <iostream>
using namespace std;

const int N=110;
int a[N][N];
int s[N][N];
int main() {
    int n,max=-128;
    cin>>n;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cin>>a[i][j];
        }
    }     
    //初始化前缀和数组
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            s[i][j]=a[i][j]+s[i-1][j]+s[i][j-1]-s[i-1][j-1];
        }
    }
    //枚举起始坐标
    for(int sx=1;sx<=n;sx++){
        for(int sy=1;sy<=n;sy++){
            //枚举终点坐标
            for(int i=sx;i<=n;i++){
                for(int j=sy;j<=n;j++){
                    int res=s[i][j]-s[sx-1][j]-s[i][sy-1]+s[sx-1][sy-1];
                    if(res>max) max=res;
                }
            }
        }
    }
    cout<<max<<endl;
    return 0;
}