using System;
using System.Collections.Generic;
using System.Linq;

struct Dise
{
    public int D1 { set; get; }
    public int D2 { set; get; }
    public int D3 { set; get; }
    public int D4 { set; get; }
    public int D5 { set; get; }
    public int D6 { set; get; }
}


class Program
{  
    static void Rotate(Dise[] dise , int j, char order)
    {
        int a, b;
        switch (order)
        {
            case 'N':
                a = dise[j].D1;
                b = dise[j].D6;
                dise[j].D1 = dise[j].D2;
                dise[j].D2 = b;
                dise[j].D6 = dise[j].D5;
                dise[j].D5 = a;
                break;
            case 'E':
                a = dise[j].D1;
                b = dise[j].D6;
                dise[j].D6 = dise[j].D3;
                dise[j].D1 = dise[j].D4;
                dise[j].D3 = a;
                dise[j].D4 = b;
                break;
            case 'S':
                a = dise[j].D1;
                dise[j].D1 = dise[j].D5;
                dise[j].D5 = dise[j].D6;
                dise[j].D6 = dise[j].D2;
                dise[j].D2 = a;
                break;
            case 'W':
                a = dise[j].D4;
                b = dise[j].D3;
                dise[j].D4 = dise[j].D1;
                dise[j].D3 = dise[j].D6;
                dise[j].D6 = a;
                dise[j].D1 = b;
                break;
        }
    }
    
    //dise[i]とdise[j]が同じかどうかを比較
    static bool Confir(Dise[] dise, int i, int j)
    {
        if (dise[i].D1 == dise[j].D1 && dise[i].D2 == dise[j].D2 && dise[i].D3 == dise[j].D3 && dise[i].D4 == dise[j].D4 &&
            dise[i].D5 == dise[j].D5 && dise[i].D6 == dise[j].D6)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    //横回転して一致するかどうかを比較(trueかfalseがでる、trueがでたら比較を負える)
    static bool SideRotateAndConfir(Dise[] dise, int i, int j)
    {
        bool flag = false;

        flag = Confir(dise, i, j);

        if (!flag)
        {
            for (int s = 0; s < 4; s++)
            {
                Rotate(dise, j, 'W');
                for (int t = 0; t < 4; t++)
                {
                    Rotate(dise, j, 'N');
                    Rotate(dise, j, 'W');
                    Rotate(dise, j, 'S');
                    flag = Confir(dise, i, j);
                    if (flag)
                    {
                        break;
                    }
                }
                if (flag)
                {
                    break;
                }
            }
        }

        if (!flag)
        {
            for (int s = 0; s < 4; s++)
            {
                Rotate(dise, j, 'N');
                for (int t = 0; t < 4; t++)
                {
                    Rotate(dise, j, 'N');
                    Rotate(dise, j, 'W');
                    Rotate(dise, j, 'S');
                    flag = Confir(dise, i, j);
                    if (flag)
                    {
                        break;
                    }
                }
                if (flag)
                {
                    break;
                }
            }
        }
        return flag;
    }
    
    
    static void Main(string[] args)
    {
        int n = int.Parse(Console.ReadLine());  //サイコロの個数
        var dise = new Dise[n];   //サイコロの情報       

        for(int i = 0; i < n; i++)
        {
            string[] input = Console.ReadLine().Split(' ');  //サイコロの目
            dise[i].D1 = int.Parse(input[0]);
            dise[i].D2 = int.Parse(input[1]);
            dise[i].D3 = int.Parse(input[2]);
            dise[i].D4 = int.Parse(input[3]);
            dise[i].D5 = int.Parse(input[4]);
            dise[i].D6 = int.Parse(input[5]);
        }

        bool flag = false;

        for(int i = 0; i < n - 1; i++)
        {
            for(int j = i + 1; j < n; j++)
            {
                //ｊを横回転してiとの同一性を比較するSideRotateAndConfirメソッド(同じだったらtrue)
                flag = SideRotateAndConfir(dise, i, j);
                if (flag)
                {
                    break;
                }

            }

            if (flag)
            {
                break;
            }

        }

        if (flag)
        {
            Console.WriteLine("No");
        }
        else
        {
            Console.WriteLine("Yes");
        }      
    }
}


Measured memory_bytes: 17988