// Arup Guha
// 6/16/2023
// Solution to Live Archive Problem 108: Maximum Sum (2D MCSS)

using namespace std;
#include <bits/stdc++.h>

int main() {

    int n,tmp;
    cin >> n;
    vector<vector<int>> g(n+1);

    // To make easy prefix sum calculations.
    for (int i=0; i<n; i++) g[0].push_back(0);

    // Read in rest of grid.
    for (int i=1; i<=n; i++) {
        for (int j=0; j<n; j++) {
            cin >> tmp;
            g[i].push_back(tmp);
        }
    }

    // Go column by column.
    for (int j=0; j<n; j++)

        // Make column i cumulative frequency.
        for (int i=1; i<=n; i++)
            g[i][j] += g[i-1][j];

    // Safe initial answer.
    int res = g[1][0];

    // Try each starting and ending row.
    for (int s=1; s<=n; s++) {
        for (int e=s; e<=n; e++) {

            // Calculate MCSS for this "row" of numbers with columns
            // fixed at s..e.
            int sum =0;
            for (int i=0; i<n; i++) {
                sum += (g[e][i]-g[s-1][i]);
                res = max(res, sum);
                if (sum < 0) sum = 0;
            }
        }
    }

    // Ta da!
    cout << res << endl;
    return 0;
}
