#include <iostream>
using namespace std;

class dice{

public:
  int _1,_2,_3,_4,_5,_6,temp;

  void moveN(){
    temp=_1;
    _1=_2;
    _2=_6;
    _6=_5;
    _5=temp;
  }

  void moveE(){
    temp=_1;
    _1=_4;
    _4=_6;
    _6=_3;
    _3=temp;
  }

  void moveW(){
    temp=_1;
    _1=_3;
    _3=_6;
    _6=_4;
    _4=temp;
  }

  void moveS(){
    temp=_1;
    _1=_5;
    _5=_6;
    _6=_2;
    _2=temp;
  }

  void spin(){
    temp=_2;
    _2=_3;
    _3=_5;
    _5=_4;
    _4=temp;
  }

};int main(){
   
  dice d[100];
  int i,j,k,l,n;  
   
  cin>>n;
   
  for(i=0; i<n; i++)cin>>d[i]._1>>d[i]._2>>d[i]._3>>d[i]._4>>d[i]._5>>d[i]._6;
   
  for(i=0; i<n; i++)for(j=0; j<n; j++){
      if(j==i)continue;  
      
      for(k=0; k<6; k++){
 
    if(k==4)d[i].moveE();
    if(k==5){
      d[i].moveE();
      d[i].moveE();
    }
     
    for(l=0; l<4; l++){
      d[i].spin();
      if(d[i]._1==d[j]._1 &&
         d[i]._2==d[j]._2 &&
         d[i]._3==d[j]._3 &&
         d[i]._4==d[j]._4 &&
         d[i]._5==d[j]._5 &&
         d[i]._6==d[j]._6){
        cout<<"No"<<endl;
        return 0;
      }
    }
 
      }
       
    }
       
   
  cout<<"Yes"<<endl;
   
  return 0;
   
}