#include <bits/stdc++.h>
using namespace std;
int main(){
    ios_base::sync_with_stdio(0); cin.tie(0);
    int n, m; cin >> n >> m;
    int a[n][m];
    for(int i = 0; i < n; ++i)
        for(int j = 0; j < m; ++j)
            cin >> a[i][j];
    //svi "ispod" moraju da idu desno, a svi iznad moraju da idu dole
    //prefiksne sume za od gore ka dole, i prefiksne sume za od levo ka desno
    //ans je minpath nad zbirom tih
    int pe[n][m][2], sum;
    //od 0 je na desno od 1 je na levo
    for(int j = 0; j < m; ++j){
        sum = 0;
        for(int i = 0; i < n; ++i){
            if(!i) pe[i][j][1] = 0;
            else if(i == 1) pe[i][j][1] = a[i - 1][j];
            else pe[i][j][1] = pe[i - 1][j][1] + sum;
            //printf("novi: %d,jedan ispod: %d, cursum: %d, i : %d, j = %d\n",a[i][j],pe[i + 1][j][1],sum,i + 1,j+ 1);
            sum += a[i][j];
            //printf("cursum: %d, i : %d, j = %d\n",sum,i + 1,j+ 1);
        }
    }
    for(int i = 0; i < n; ++i){
        sum = 0;
        for(int j = 0; j < m; ++j){
            if(!j) pe[i][j][0] = 0;
            else if(j == 1) pe[i][j][0] = a[i][j - 1];
            else pe[i][j][0] = pe[i][j - 1][0] + sum;
            sum += a[i][j];
        }
    }
    //for(int i = 0; i < n; ++i){
    //    for(int j = 0; j < m; ++j){
    //        printf("i: %d, j: %d, od gore: %d, od desno %d\n", i + 1, j + 1, pe[i][j][1], pe[i][j][0]);
    //    }
   // }
    int dp[n][m]; dp[0][0] = 0;
    for(int i = 1; i < n; ++i)
        dp[i][0] = pe[i][0][1];
    for(int j = 1; j < m; ++j)
        dp[0][j] = pe[0][j][0];
    for(int i = 1; i < n; ++i)
        for(int j = 1; j < m; ++j){
            dp[i][j] = min(dp[i - 1][j] + pe[i][j][0], dp[i][j - 1] + pe[i][j][1]);
            //printf("i%d,j%d\n",i+1,j+1);
            //printf("iznad mene dp: %d, levo dp: %d, od levo: %d, od dole: %d\n",dp[i - 1][j],dp[i][j - 1],  pe[i][j][0],pe[i][j][1]);
        }
    //for(int i = 0; i < n; ++i)
       // for(int j = 0; j < m; ++j)
            //cout << i << ' ' << j << ' ' << dp[i][j] << '\n';
    cout << dp[n - 1][m - 1] - a[0][0];
    return 0;
}