I=input N=range(int(I())) D=[list(map(int,I().split()))for i in N] m=u=0 for i in N: for j in N: m|=(D[i][j]>0)!=(i!=j)or D[i][j]!=D[j][i] for k in N: u|=D[i][k]>max(D[i][j],D[j][k]) m|=D[i][k]>D[i][j]+D[j][k] for b in[m,m|u]:print("YNeos"[b::2])