#include <bits/stdc++.h>
using namespace std;
int m,n;
int v[55][55];
int dp[110][55][55];
int main(){
cin>>m>>n;
for(int i =1;i<=m;i++){
for(int j =1;j<=n;j++){
cin>>v[i][j];
}
}
for(int k =2;k<=m+n;k++){
for(int i1 = 1;i1<=m;i1++){
for(int i2 = 1;i2<=n;i2++){
int j1 = k-i1,j2 = k-i2;
if(j1>=1&&j1<=m&&j2>=1&&j2<=n){
int t = v[i1][j1];
if(i1!=i2) t+=v[i2][j2];
int &x = dp[k][i1][i2];
x = max(x,dp[k-1][i1-1][i2]+t);
x = max(x,dp[k-1][i1][i2-1]+t);
x = max(x,dp[k-1][i1-1][i2-1]+t);
x = max(x,dp[k-1][i1][i2]+t);
}
}
}
}
cout<<dp[m+n][m][m];
return 0;
}