#include using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(0); int N; cin >> N; vector> A(N, vector(N)); for(int i = 0; i < N; i++){ for(int j = 0; j < N; j++){ cin >> A[i][j]; } } vector e; for(int i = 0; i < N; i++){ for(int j = 0; j < N; j++){ for(int k = 0; k < N; k++){ if(A[A[i][j]][k] != A[i][A[j][k]]){ cout << "No" << '\n'; return 0; } } if(A[i][j] == i){ e.emplace_back(j); } } } sort(e.begin(), e.end()); e.erase(unique(e.begin(), e.end()), e.end()); if(e.size() != 1){ cout << "No" << '\n'; return 0; } for(int i = 0; i < N; i++){ bool flag = true; for(int j = 0; j < N; j++){ if(A[i][j] == e[0]){ flag = false; break; } } if(flag){ cout << "No" << '\n'; return 0; } } cout << "Yes" << '\n'; }