#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;
}