N, M = map(int, input().split()) if N == 1: print(0) exit() A = [list(map(int, input().split())) for _ in range(N)] dp = [0] * M minc = 10 ** 13 for j in range(M): dp[j] = A[0][j] + A[1][j] if minc > dp[j]: minc = min(minc, dp[j]) minm = {j} elif minc == dp[j]: minm.add(j) for i in range(2, N): minc2 = 10 ** 13 minm2 = {} dp2 = [0] * M for j in range(M): if j in minm: tmp = dp[j] + A[i][j] else: tmp = min(minc + A[i - 1][j] + A[i][j], dp[j] + A[i][j]) if minc2 > tmp: minc2 = tmp minm2 = {j} elif minc == dp[j]: minm2.add(j) dp2[j] = tmp minc = minc2 minm = minm2 dp = dp2 print(minc)