/*
TASK:apple
LANG:C++
*/
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include<vector>
using namespace std;

int A[100][100];
int B[100][100],n,m;
void solve()
{
cin>>n>>m;
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
   cin>>A[i][j];
   B[i][j]=max(B[i-1][j]+A[i][j],B[i][j-1]+A[i][j]);
}
/*for(i=1;i<=n;i++)
{for(j=1;j<=m;j++)
cout<<A[i][j]<<" ";cout<<endl;}
*/
int res=B[n][m];

int ii=n,jj=m;
while(ii!=1||jj!=1)
{
   if(B[ii][jj]==B[ii-1][jj]+A[ii][jj]){A[ii][jj]=0;ii--;}
   else
   {A[ii][jj]=0;
      jj--;
   }
   
}
A[ii][jj]=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
   B[i][j]=max(B[i-1][j]+A[i][j],B[i][j-1]+A[i][j]);
}

res+=B[n][m];
cout<<res<<endl;
/*for(i=1;i<=n;i++)
{for(j=1;j<=m;j++)
cout<<A[i][j]<<" ";cout<<endl;}
*/


}

int main()
{

solve();
return 0;
}
