INF = 10**18 N, M = map(int, input().split()) A = [list(map(int, input().split())) for _ in range(N)] if N == 1: exit(print(0)) DP = [[INF] * (M) for _ in range(N)] # i == 0 for j in range(M): DP[0][j] = 0 # i == 1 for j in range(M): DP[1][j] = A[0][j] + A[1][j] premin = min(DP[1]) if N == 2: exit(print(premin)) # もらうDP for i in range(2, N): for j in range(M): DP[i][j] = min( DP[i - 1][j] + A[i][j], premin + A[i - 1][j] + A[i][j] ) premin = min(DP[i]) ans = min(DP[-1]) print(ans)