N = int(input()) D = [list(map(int, input().split())) for _ in range(N)] F = [True]*4 for i in range(N): if D[i][i] != 0: F[0] = False break for i in range(N): for j in range(N): if D[i][j] != D[j][i]: F[1] = False for i in range(N): for j in range(N): for k in range(N): if D[i][j] > D[i][k]+D[k][j]: F[2] = False if D[i][j] > max(D[i][k], D[k][j]): F[3] = False if F[0] and F[1]: print("Yes" if F[2] else "No") print("Yes" if F[3] else "No") else: print("No") print("No")