#include <bits/stdc++.h>
using namespace std;
struct Dice{
	int x[6];
	void input(){
		for(int i=0;i<6;i++){
			cin>>x[i];
		}
	}
	void rollforward(){
		int tmp=x[0];
		x[0]=x[1];
		x[1]=x[5];
		x[5]=x[4];
		x[4]=tmp;
	}
	void rollside(){
		int tmp=x[1];
		x[1]=x[3];
		x[3]=x[4];
		x[4]=x[2];
		x[2]=tmp;
	}
	bool operator==(Dice a){
		for(int i=0;i<6;i++){
			if(x[i]!=a.x[i])	return false;
		}
		return true;
	}
};
bool check(Dice a,Dice b){
	for(int i=0;i<4;i++){
		for(int j=0;j<4;j++){
			if(a==b)	return true;
			a.rollside();
		}
		a.rollforward();
	}
	a.rollside();
	a.rollforward();
	for(int i=0;i<4;i++){
		if(a==b)	return true;
		a.rollside();
	}
	a.rollforward();
	a.rollforward();
	for(int i=0;i<4;i++){
		if(a==b)	return true;
		a.rollside();
	}
	return false;
}
int main(){
	int n;	cin>>n;
	Dice a[n];
	for(int i=0;i<n;i++)	a[i].input();
	for(int i=0;i<n;i++){
		for(int j=i+1;j<n;j++){
			if(check(a[i],a[j])){
				cout<<"No"<<endl;
				return 0;
			}
		}
	}
	cout<<"Yes"<<endl;
	return 0;
}