//
//  main.cpp
//  Maximum Sum Sequence II
//
//  Created by 八代 光平 on 13/04/24.
//  Copyright (c) 2013年 八代 光平. All rights reserved.
//

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#define N 100

int sum(int top, int under, int left, int right, int a[N][N]);
int search(int top, int under, int left, int right, int max, int a[N][N], int n);

int main(int argc, const char * argv[])
{
    int n=0;
    scanf("%d",&n);
    int a[N][N]={0};
    
    for(int i=0; i<n; i++){
        for(int j=0; j<n; j++){
            scanf("%d",&a[i][j]);
        }
    }
    /*---------------*/
    
    
    int max = -100001;
    
    for(int i=0; i<n; i++){
        for(int j=0; j<n; j++){
            for(int k=i; k<n; k++){
                for(int l=j; l<n; l++){
                    int temp=sum(i, k, j, l, a);
                    if(temp>max){
                        max=temp;
                    }else{
                        l=N;
                    }
                }
            }
        }
    }
    
    /*---------------*/
    printf("%d\n",max);
}


int sum(int top, int under, int left, int right, int a[N][N]){
    int temp=0;
    for(int i=top; i<=under; i++){
        for(int j=left; j<=right; j++){
            temp += a[i][j];
        }
    }
    //printf("%d,top:%d,under:%d,left:%d,right:%d\n",temp,top,under,left,right);
    return temp;
}