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])