n = int(input()) f0 = f1 = f2 = f3 = 1 A = [list(map(int, input().split())) for _ in range(n)] for y in range(n): for x in range(n): if y == x and A[y][x]: f0 = 0 if not A[y][x] and y != x: f0 = 0 if A[y][x] != A[x][y]: f1 = 0 for i in range(n): for j in range(n): for k in range(n): if A[i][j] > A[i][k] + A[k][j]: f2 = 0 if A[i][j] > max(A[i][k], A[k][j]): f3 = 0 print("Yes" if f0 and f1 and f2 else "No") print("Yes" if f0 and f1 and f3 else "No")