def is_upper_triangular_matrix(ls: list[int]):
    """判断二维列表是否满足上三角矩阵的判定"""
    for row in range(len(ls)):
        for column in range(len(ls[0])):
            if column < row and ls[row][column] != 0:
                return False
    return True

n = int(input())
nums = []
for i in range(n):
    nums.append(list(map(int, input().split())))
print('YES' if is_upper_triangular_matrix(nums) else 'NO')