/*
TASK:apple
LANG:C++
*/
#include <iostream>
using namespace std;
long long f[71][71];
int p[71][71];
long long f2[71][71];
int N,M;	
	
int main()
{
    cin>>N>>M;
    int i,j;
        for(i=1;i<=N;i++)           
           for(j=1;j<=M;j++)
       	   	{
						cin>>f[i][j];
						f2[i][j]=f[i][j];
					}
					p[1][1]=-1;
			for(i=1;i<=N;i++)
				for(j=1;j<=M;j++)
					{
						if(f[i-1][j]+f[i][j]<f[i][j-1]+f[i][j])
							{
								f[i][j]=f[i][j-1]+f[i][j];
								p[i][j]=0;
							}
							else
							{
								f[i][j]=f[i-1][j]+f[i][j];
								p[i][j]=1;
							}
					}
					p[1][1]=-1;
				i=N;
				j=M;
					while(1)
						{
								f2[i][j]=0;
								if(p[i][j]==0)
									{
										j--;
									}
									else i--;
							if(p[i][j]==-1) {
									f2[i][j]=0;
								break;}
							}	
			for(i=1;i<=N;i++)
				for(j=1;j<=M;j++)
					{
						if(f2[i-1][j]+f2[i][j]<f2[i][j-1]+f2[i][j])
							{
								f2[i][j]=f2[i][j-1]+f2[i][j];
								p[i][j]=0;
							}
							else
							{
								f2[i][j]=f2[i-1][j]+f2[i][j];
								p[i][j]=1;
							}
					}
			cout<<f[N][M]+f2[N][M]<<endl;
	
					  
    return 0;
}
