#include<bits/stdc++.h>
using namespace std;
const int kMax=1e3+5;
int n,m,a[kMax][kMax],f[kMax][kMax],on[kMax][kMax],un[kMax][kMax];
bool vis[kMax][kMax];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
f[1][1]=a[1][1];
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
on[i][j]=max(on[i+1][j],f[i][j-1]);
un[i][j]=max(un[i-1][j],f[i][j-1]);
f[i][j]=max(on[i][j],un[i][j])+a[i][j];
}
}
cout<<f[n][m]<<endl;
return 0;
}