#include #include #include #include #include #include #include using namespace std; typedef long long ll; #define rep(i, n) for(int i = 0; i < (n); i++) template using vi = vector; template using vii = vector>; template using viii = vector>; int main() { int h, w; cin >> h >> w; vi s(h); rep(i, h) cin >> s[i]; vi dp(w); dp[0] = s[0][0]; for (int j = 1; j < w; j++) dp[j] = dp[j - 1] + s[0][j]; for(int i = 1; i < h; i++) { vi prev(w); swap(prev, dp); dp[0] = prev[0] + s[i][0]; for (int j = 1; j < w; j++) { dp[j] = dp[j - 1] + s[i][j]; string temp = prev[j] + s[i][j]; if (temp < dp[j]) dp[j] = temp; } } cout << dp[w - 1] << endl; return 0; }