#include <bits/stdc++.h>
using namespace std;
int main(){
  int n;
  cin >> n;
  vector< vector<int> > F(n, vector<int>(6));
  for (int i = 0; i < n; i++){
    for (int j = 0; j < 6; j++){
      cin >> F[i][j];
    }
  }
  bool diff = true;
  for (int i = 0; i < n; i++){
    for (int j = i + 1; j < n; j++){
      bool same = false;
      vector<int> A(6);
      for (int k = 0; k < 6; k++){
        A[k] = F[i][k];
      }
      vector<int> B(6);
      for (int k = 0; k < 6; k++){
        B[k] = F[j][k];
      }
      if (A[0] == B[0] && A[1] == B[1] && A[2] == B[2] && A[3] == B[3] && A[4] == B[4] && A[5] == B[5]) same = true;
      if (A[0] == B[0] && A[1] == B[2] && A[2] == B[4] && A[3] == B[1] && A[4] == B[3] && A[5] == B[5]) same = true;
      if (A[0] == B[0] && A[1] == B[3] && A[2] == B[1] && A[3] == B[4] && A[4] == B[2] && A[5] == B[5]) same = true;
      if (A[0] == B[0] && A[1] == B[4] && A[2] == B[3] && A[3] == B[2] && A[4] == B[1] && A[5] == B[5]) same = true;
      if (A[0] == B[1] && A[1] == B[0] && A[2] == B[3] && A[3] == B[2] && A[4] == B[5] && A[5] == B[4]) same = true;
      if (A[0] == B[1] && A[1] == B[2] && A[2] == B[0] && A[3] == B[5] && A[4] == B[3] && A[5] == B[4]) same = true;
      if (A[0] == B[1] && A[1] == B[3] && A[2] == B[5] && A[3] == B[0] && A[4] == B[2] && A[5] == B[4]) same = true;
      if (A[0] == B[1] && A[1] == B[5] && A[2] == B[2] && A[3] == B[3] && A[4] == B[0] && A[5] == B[4]) same = true;
      if (A[0] == B[2] && A[1] == B[0] && A[2] == B[1] && A[3] == B[4] && A[4] == B[5] && A[5] == B[3]) same = true;
      if (A[0] == B[2] && A[1] == B[1] && A[2] == B[5] && A[3] == B[0] && A[4] == B[4] && A[5] == B[3]) same = true;
      if (A[0] == B[2] && A[1] == B[4] && A[2] == B[0] && A[3] == B[5] && A[4] == B[1] && A[5] == B[3]) same = true;
      if (A[0] == B[2] && A[1] == B[5] && A[2] == B[4] && A[3] == B[1] && A[4] == B[0] && A[5] == B[3]) same = true;
      if (A[0] == B[3] && A[1] == B[0] && A[2] == B[4] && A[3] == B[1] && A[4] == B[5] && A[5] == B[2]) same = true;
      if (A[0] == B[3] && A[1] == B[1] && A[2] == B[0] && A[3] == B[5] && A[4] == B[4] && A[5] == B[2]) same = true;
      if (A[0] == B[3] && A[1] == B[4] && A[2] == B[5] && A[3] == B[0] && A[4] == B[1] && A[5] == B[2]) same = true;
      if (A[0] == B[3] && A[1] == B[5] && A[2] == B[1] && A[3] == B[4] && A[4] == B[0] && A[5] == B[2]) same = true;
      if (A[0] == B[4] && A[1] == B[0] && A[2] == B[2] && A[3] == B[3] && A[4] == B[5] && A[5] == B[1]) same = true;
      if (A[0] == B[4] && A[1] == B[2] && A[2] == B[5] && A[3] == B[0] && A[4] == B[3] && A[5] == B[1]) same = true;
      if (A[0] == B[4] && A[1] == B[3] && A[2] == B[0] && A[3] == B[5] && A[4] == B[2] && A[5] == B[1]) same = true;
      if (A[0] == B[4] && A[1] == B[5] && A[2] == B[3] && A[3] == B[2] && A[4] == B[0] && A[5] == B[1]) same = true;
      if (A[0] == B[5] && A[1] == B[1] && A[2] == B[3] && A[3] == B[2] && A[4] == B[4] && A[5] == B[0]) same = true;
      if (A[0] == B[5] && A[1] == B[2] && A[2] == B[1] && A[3] == B[4] && A[4] == B[3] && A[5] == B[0]) same = true;
      if (A[0] == B[5] && A[1] == B[3] && A[2] == B[4] && A[3] == B[1] && A[4] == B[2] && A[5] == B[0]) same = true;
      if (A[0] == B[5] && A[1] == B[4] && A[2] == B[2] && A[3] == B[3] && A[4] == B[1] && A[5] == B[0]) same = true;
      if (same){
        diff = false;
      }
    }
  }
  if (diff){
    cout << "Yes" << endl;
  } else {
    cout << "No" << endl;
  }
}


Measured memory_bytes: 3172