
/*
TASK:apple
LANG:C++
*/

#include <stdio.h>

#define MAXN 71
#define MAX( a, b ) ( (a) > (b) ? (a) : (b) )

int c[MAXN][MAXN], n, m;
    
int F[MAXN][MAXN], b[MAXN][MAXN], T[MAXN][MAXN];

void input()
{
    int i, j;
    
    scanf( "%d %d", &n, &m );
    
    for( i = 0; i < n; i++ )
         for( j = 0; j < m; j++ )
             scanf( "%d", &c[i][j] );
}

void calc()
{
    int i, j;
    
    F[0][0] = c[0][0];
    b[0][0] = 0;
    
    for( i = 1; i < n; i++ ) {
        F[i][0] += F[i - 1][0] + c[i][0];
        b[i][0] = 1;
    }
        
    for( j = 1; j < m; j++ ) {
        F[0][j] += F[0][j - 1] + c[0][j];
        b[0][j] = 2;
    }
        
    for( i = 1; i < n; i++ )
        for( j = 1; j < m; j++ ) {
            F[i][j] = MAX( F[i - 1][j], F[i][j - 1] ) + c[i][j];
            if( F[i - 1][j] > F[i][j - 1] ) b[i][j] = 1;
            else b[i][j] = 2;
        }
}

void calc2()
{
    int i, j;
    
    T[0][0] = c[0][0];
    
    for( i = 1; i < n; i++ ) 
        T[i][0] += T[i - 1][0] + c[i][0];
    
        
    for( j = 1; j < m; j++ ) 
        T[0][j] += T[0][j - 1] + c[0][j];

        
    for( i = 1; i < n; i++ )
        for( j = 1; j < m; j++ ) 
            T[i][j] = MAX( T[i - 1][j], T[i][j - 1] ) + c[i][j];
}
       

void follow( int i, int j )
{
     c[i][j] = 0;
     
     while( b[i][j] != 0 ) {
          if( b[i][j] == 1 ) i--;
          else j--;
          c[i][j] = 0;
   }
}

int findMax( int& mi, int& mj )
{
    int i, j, maxVal = -1;
    
     for( i = 0; i < n; i++ )
        for( j = 0; j < m; j++ )
            if( F[i][j] > maxVal ) {
                maxVal = F[i][j];
                mi = i;
                mj = j;
            }
            
     return maxVal;
}

void p()
{
     int i, j;
     
     for( i = 0;  i<n; i++) {
         for(j=0; j<m; j++) 
            printf( "%d ", T[i][j] );
         printf( "\n" );
     }
}
    
    
int main()
{
    int mi, mj;
    
    input();
    
    calc();
    int a = findMax( mi, mj );
    follow( mi, mj );
    
    calc2();
     
     int i, j, t = -1;
     
     for( i = 0; i < n; i++ )
        for( j = 0; j < n; j++ )
           if( T[i][j] > t ) t = T[i][j];
           
     printf( "%d", a + t );
    
    
   
}
     
     
     
     
     
     
     
     
     
     
