#include <stdbool.h>
#include <stdio.h>
int Max[100][100];
int duicheng(int a) {
int i, j = 0;
int b = 0;
// printf_s("开始输入数组:\n");
for (i = 0; i < a; i++) {
for (j = 0; j < a; j++) {
scanf("%d", &b);
Max[i][j] = b;
}
}
// printf_s("数组:\n");
/*for (i = 0; i < a; i++) {
for (j = 0; j <a; j++) {
printf_s("%d", Max[i][j]);
}
printf_s("\n");
}*/
for ( i = 0; i < a; i++) {
for (j = 0; j < a; j++) {
if (Max[i][j] != Max[j][i]) {
return 0;
}
}
}
return 1;
}
int main() {
int a;
int i, j = 0;
while (scanf("%d", &a) != EOF) { // 注意 while 处理多个 case
for (i = 0; i <= a; i++) {
for (j = 0; j <= a; j++) {
Max[i][j] = 0;
}
}
if (duicheng(a)==1) {
printf("Yes!\n");
continue;
} else {
printf("No!\n");
continue;
}
}
return 0;
}