#include<bits/stdc++.h>
using namespace std;
int m,n;
int dp[51][51][51][51],hx[51][51];
/*int maxtz(int a,int b,int c,int d)
{
a=a>c?a:c;
b=b>d?b:d;
return a>b?a:b;
} */
int main(){
scanf("%d%d",&m,&n);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
scanf("%d",&hx[i][j]);
}
}
for(int i=1;i<=n;i++){//一下
for(int j=1;j<=m;j++){//一右
for(int k=n;k>=1;k--){//二右
for(int h=m;h>=1;h--){//二下
dp[i][j][k][h]=max(dp[i-1][j][k][h-1],max(dp[i-1][j][k-1][h],max(dp[i][j-1][k-1][h],dp[i][j-1][k][h-1])));
dp[i][j][k][h]+=((i==k&&j==h)?hx[i][j]:(hx[i][j]+hx[k][h]));
}
}
}
}
printf("%d",dp[n][m][n][m]);
return 0;
}