






"""simple docstring"""






import os



def       _A    (__a = "matrix.txt"							)				-> int:
    """simple docstring"""






    with open(os.path.join(os.path.dirname(__a							)					,       __a							)							) as in_file:
        SCREAMING_SNAKE_CASE_   :						Optional[Any]							=	in_file.read()

    SCREAMING_SNAKE_CASE_   :						Union[str, Any]							=	[[int(__a							) for cell in row.split(''','''							)] for row in data.strip().splitlines()]
    SCREAMING_SNAKE_CASE_   :						List[Any]							=	[[0 for cell in row] for row in grid]
    SCREAMING_SNAKE_CASE_   :						Dict							=	len(grid[0]							)

    SCREAMING_SNAKE_CASE_   :						str							=	[[0 for i in range(__a							)] for j in range(__a							)]
    SCREAMING_SNAKE_CASE_   :						List[str]							=	grid[0][0]
    for i in range(1					,       __a							):
        SCREAMING_SNAKE_CASE_   :						List[Any]							=	grid[0][i] + dp[0][i - 1]
    for i in range(1					,       __a							):
        SCREAMING_SNAKE_CASE_   :						List[Any]							=	grid[i][0] + dp[i - 1][0]

    for i in range(1					,       __a							):
        for j in range(1					,       __a							):
            SCREAMING_SNAKE_CASE_   :						Any							=	grid[i][j] + min(dp[i - 1][j]					,       dp[i][j - 1]							)

    return dp[-1][-1]


if __name__ == "__main__":
  print(f'''{solution() = }''')










"""simple docstring"""






from collections import defaultdict

from graphs.minimum_spanning_tree_prims import prisms_algorithm as mst



def       _A    ()				-> Union[str, Any]:
    """simple docstring"""






    SCREAMING_SNAKE_CASE_		,    SCREAMING_SNAKE_CASE_   :						Tuple							=	9, 14  # noqa: F841
    SCREAMING_SNAKE_CASE_   :						Tuple							=	[
        [0, 1, 4],
        [0, 7, 8],
        [1, 2, 8],
        [7, 8, 7],
        [7, 6, 1],
        [2, 8, 2],
        [8, 6, 6],
        [2, 3, 7],
        [2, 5, 4],
        [6, 5, 2],
        [3, 5, 14],
        [3, 4, 9],
        [5, 4, 10],
        [1, 7, 11],
    ]

    SCREAMING_SNAKE_CASE_   :						Dict							=	defaultdict(__a							)
    for nodea, nodea, cost in edges:
        adjancency[nodea].append([nodea, cost]							)
        adjancency[nodea].append([nodea, cost]							)

    SCREAMING_SNAKE_CASE_   :						Any							=	mst(__a							)

    SCREAMING_SNAKE_CASE_   :						Optional[int]							=	[
        [7, 6, 1],
        [2, 8, 2],
        [6, 5, 2],
        [0, 1, 4],
        [2, 5, 4],
        [2, 3, 7],
        [0, 7, 8],
        [3, 4, 9],
    ]

    for answer in expected:
        SCREAMING_SNAKE_CASE_   :						Dict							=	tuple(answer[:2]							)
        SCREAMING_SNAKE_CASE_   :						Optional[int]							=	tuple(edge[::-1]							)
        assert edge in result or reverse in result


