import sys

def solve():
    """
    Standard CP format for Minimum Cost Path in a Grid.
    Input: 
      Line 1: Two space-separated integers m and n (rows and columns)
      Next m lines: n space-separated integers representing the grid costs
    Example:
      3 3
      1 3 1
      1 5 1
      4 2 1
    """
    # Read grid dimensions
    first_line = sys.stdin.readline().strip()
    if not first_line:
        return
        
    m, n = map(int, first_line.split())
    grid = []
    
    # Read exactly m rows
    for _ in range(m):
        row = list(map(int, sys.stdin.readline().strip().split()))
        grid.append(row)
        
    if not grid:
        return
    
    # Initialize DP grid
    dp = [[0 for _ in range(n)] for _ in range(m)]
    dp[0][0] = grid[0][0]
    
    # Initialize first row
    for j in range(1, n):
        dp[0][j] = dp[0][j-1] + grid[0][j]
        
    # Initialize first column
    for i in range(1, m):
        dp[i][0] = dp[i-1][0] + grid[i][0]
        
    # Fill the DP table
    for i in range(1, m):
        for j in range(1, n):
            dp[i][j] = min(dp[i-1][j], dp[i][j-1]) + grid[i][j]
            
    print(f"Minimum Cost = {dp[m-1][n-1]}")

if __name__ == '__main__':
    solve()