#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<iostream>
#include<vector>
using namespace std;
//输入一个N维矩阵,判断是否对称。
//输入第一行包括一个数:N(1<=N<=100),表示矩阵的维数。 接下来的N行,每行包括N个数,表示N*N矩阵的元素。
//可能有多组测试数据,对于每组数据, 输出"Yes!”表示矩阵为对称矩阵。 输出"No!”表示矩阵不是对称矩阵。
void matrix(vector<vector<int>> arr, int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (arr[i][j] != arr[j][i]) {
printf("No!\n");
return;
}
}
}
printf("Yes!\n");
}
int main() {
int n;
while (scanf("%d", &n) != EOF) {
vector<vector<int>> arr(n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
int m;
scanf("%d", &m);
arr[i].push_back(m);
}
}
matrix(arr, n);
}
return 0;
}