#include <iostream>
#define int long long
#define endl '\n'
using namespace std;
signed main() {
int n, m;
cin >> n >> m;
int a[n][m];
int dp[2][m];
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
cin >> a[i][j];
}
}
dp[0][0] = a[0][0];
for (int i = 1; i < m; ++i)dp[0][i] = a[0][i] + dp[0][i - 1];
for (int i = 1; i < n; ++i) {
dp[i%2][0] = a[i][0] + dp[(i-1)%2][0];
for (int j = 1; j < m; ++j) {
dp[i%2][j] = min(dp[(i - 1)%2][j], dp[i%2][j - 1]) + a[i][j];
}
}
cout << dp[(n-1)%2][m - 1] << endl;
}
// 64 位输出请用 printf("%lld")