#include<bits/stdc++.h>
using namespace std;#definedbdouble#definelllonglong#definePirpair<int,int>#definefifirst#definesesecond#definepbpush_back#definem_pmake_pair#defineinf0x3f3f3f3f#defineINF0x3f3f3f3f3f3f3f3f/*==========ACMer===========*/#defineMax(a, b, c, d)max(max(a, b),max(c, d))constint N =55;int a[N][N];int dp[N][N][N][N];intmain(){
memset(dp,0,sizeof dp);int n, m;scanf("%d %d",&n,&m);for(int i =1; i <= n; i ++)for(int j =1; j <= m; j ++)scanf("%d",&a[i][j]);for(int i =1; i <= n; i ++){
for(int j =1; j <= m; j ++){
for(int k =1; k <= n; k ++){
for(int l =1; l <= m; l ++){
int res =(i == k && j == l)?(a[i][j]):(a[i][j]+ a[k][l]);
dp[i][j][k][l]=Max(dp[i -1][j][k -1][l], dp[i -1][j][k][l -1], dp[i][j -1][k -1][l], dp[i][j -1][k][l -1])+ res;}}}}printf("%d\n", dp[n][m][n][m]);return0;}