while True:
    try:
        n, m = map(int, input().split())
        matrix = [list(map(int, input().split())) for _ in range(n)]
    except:
        break
    else:
        dp = [[0]*(m+1) for _ in range(n+1)]
        for i in range(1, n+1):
            for j in range(1, m+1):
                # 边界需要设置一堵墙
                if i == 1 and j != 1:
                    dp[i-1][j] = float('inf')
                if i != 1 and j == 1:
                    dp[i][j-1] = float('inf')
                dp[i][j] = min(dp[i][j-1]+matrix[i-1][j-1], dp[i-1][j]+matrix[i-1][j-1])
        print(dp[n][m])