#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; int main(){ ll N, M, mi=0, mi2; cin >> N >> M; vector> dp(N+1, vector(M+1, 1e18)), A(N+1, vector(M+1)); for (int i=1; i<=N; i++){ for (int j=1; j<=M; j++) cin >> A[i][j]; } if (N == 1){ cout << 0 << endl; return 0; } for (int i=2; i<=N; i++){ mi2 = 1e18; for (int j=1; j<=M; j++){ dp[i][j] = min(dp[i-1][j]+A[i][j], mi+A[i][j]+A[i-1][j]); mi2 = min(mi2, dp[i][j]); } swap(mi2, mi); } cout << mi << endl; return 0; }