#include <iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=510;
int n,m;
int f[N][N],g[N][N];


int main() {
  cin>>n>>m;
  for(int i=1;i<=n;i++)
  {for(int j=1;j<=m;j++)
cin>>g[i][j];
  }
  for(int i=1;i<=n;i++){
  for(int j=1;j<=m;j++)
  {if(i==1)f[i][j]=f[i][j-1]+g[i][j];//特判第一行只能从左边过来
  if(j==1)f[i][j]=f[i-1][j]+g[i][j];//特判第一列只能从上面过来
  if(i!=1&&j!=1)//其他行从右边或上边过来
    f[i][j]=min(f[i-1][j]+g[i][j],f[i][j-1]+g[i][j]);
//cout<<f[i][j]<<' ';


  }//cout<<endl;
  }cout<<f[n][m];
  return 0;

}
// 64 位输出请用 printf("%lld") +-