#include<iostream>
#define rep(i,N) for( i = 1; i <= N; i++ )
using namespace std;

int n;
int data[102][102];
int rui[102][102];		//rui[i][j] = (1,1)を左上とするi*j行列の要素和

int main(){
	int i,j,k,l;
	cin >> n;
	rep(i,n){
		rep(j,n){
			cin >> data[i][j];
		}
	}
	
	//左→右
	rep(i,n){
		rep(j,n){
			rui[i][j] = rui[i][j-1] + data[i][j];
		}
	}
	//上→下
	rep(j,n){
		rep(i,n){
			rui[i][j] = rui[i-1][j] + rui[i][j];
		}
	}
	
	int ans = -1145141919;
	rep(i,n){
		rep(j,n){
			for(k = i; k <= n; k++){
				for(l = j; l <= n; l++){
					//左上(i,j), 右下(k,l)とする行列の要素和を求める
					int mats = rui[k][l] - rui[k][j-1] - rui[i-1][l] + rui[i-1][j-1];
					ans = max( ans, mats );
				}
			}
		}
	}
	cout << ans << endl;
	return 0;
}

/*Σ(k=a, k=b)A[k]を知りたい！
愚直に計算O(b-a)

先に
Σ(k=1, k=n)A[k] = rui[n]としておく.
すると、
Σ(k=a, k=b)A[k] = rui[b] - rui[a];
で計算できる。
O(1)
*/