# 斜めがあるからややこしい # 方向を左・上からに限定する H, W = map(int, input().split()) A = [list(map(int, input().split())) for _ in range(H)] n1 = [[] for _ in range(H+W-1)] hwmin = -(W-1) hwmax = H-1 period = hwmax - hwmin + 1 n2 = [[] for _ in range(period)] for i in range(H): for j in range(W): n1[i+j].append((i,j)) n2[(i-j) - hwmin].append((i,j)) S = n1 + n2 # yoko for i in range(H): tmp = [] for j in range(W): tmp.append((i,j)) S.append(tmp) # tate for j in range(W): tmp = [] for i in range(H): tmp.append((i,j)) S.append(tmp) num = len(S) ans = 0 for s0 in range(num): for s1 in range(s0+1,num): g = set() tmp = 0 for i,j in S[s0]: if (i,j) not in g: tmp += A[i][j] g.add((i,j)) for i,j in S[s1]: if (i,j) not in g: tmp += A[i][j] g.add((i,j)) ans = max(ans, tmp) print(ans)