### BUGGY CODE ###

def solve():
    from sys import stdin
    from itertools import accumulate
     
    file_input = stdin
     
    N = int(file_input.readline())
     
    img = []
    acc_row = []
     
    for line in file_input:
        line = tuple(map(int, line.split()))
        img.append(line)
        acc_row.append(tuple(accumulate(line)) + (0,))
    img = tuple(img)
    acc_row = tuple(acc_row)
     
    def acc_list(col):
        return tuple(accumulate(col)) + (0,)
    acc_col = tuple(map(acc_list, zip(*img)))
     
    ans = 0
    for i, tpl_1 in enumerate(zip(img, acc_row)):
        img_row_i, acc_row_i = tpl_1
        for j, tpl_2 in enumerate(zip(img[i:], acc_row[i:]), start=i):
            img_row_j, acc_row_j = tpl_2
             
            if acc_row_i[j] - acc_row_i[i - 1] > ans:
                ans = acc_row_i[j] - acc_row_i[i - 1]
             
            if i == j:
                continue
             
            col = acc_col[0]
            col_max = col[j] - col[i - 1]
             
            for acc_col_k, img_row_i_k, img_row_j_k in zip(acc_col[1:], img_row_i[1:], img_row_j[1:]):
                col = acc_col_k[j] - acc_col_k[i - 1]
                if col_max > 0:
                    c_ans = col_max + col
                    if c_ans > ans:
                        ans = c_ans
                else:
                    if col > ans:
                        ans = col
                 
                t_col_max = col_max + img_row_i_k + img_row_j_k
                if t_col_max > col:
                    col_max = t_col_max
                else:
                    col_max = col
    print(ans)
 
solve()


### FIXED CODE ###

from sys import stdin
from itertools import accumulate

def solve():
    file_input = stdin
    
    N = int(file_input.readline())
    G = tuple(tuple(map(int, line.split())) for line in file_input)
    G1 = tuple(t[1:] for t in G)
    
    # accumulated rows
    ar = ((0,) + tuple(accumulate(line)) for line in G)
    
    # accumulated columns
    ac = ((0,) + tuple(accumulate(line)) for line in zip(*G))
    ac_1 = next(ac)
    ac = tuple(zip(*ac))
    
    ans = 0
    for i, t1 in enumerate(zip(G1, ar, ac, ac_1)):
        G_i, ar_i, ac_i, ac_1i = t1
        ar_ii = ar_i[i]
        for j, t2 in enumerate(zip(G1[i:], ar_i[i+1:], ac[i+1:], ac_1[i+1:]), start=i):
            G_j, ar_ij, ac_j, ac_1j = t2
            single_row = ar_ij - ar_ii
            if single_row > ans:
                ans = single_row
                
            if i == j:
                continue
            
            col_max = ac_1j - ac_1i
            
            for ac_jk, ac_ik, G_ik, G_jk in zip(ac_j, ac_i, G_i, G_j):
                col = ac_jk - ac_ik
                
                if col_max > 0:
                    c_ans = col_max + col
                    if c_ans > ans:
                        ans = c_ans
                else:
                    if col > ans:
                        ans = col
                
                t_col_max = col_max + G_ik + G_jk
                if t_col_max > col:
                    col_max = t_col_max
                else:
                    col_max = col
    print(ans)

solve()