/*AOJ ??????11D
 5/31 ?????´???????????????
 1.??????????????°????????\?????????TOP ?????? _top ?????¢???????????´
 2.///????????£????????????????????????
 3.makedice????????????????????????????¶????????????????????????????????????±???
 4.compareTop?????????????????????
 ??????????????????????????????????????????????????????????????????????????????????????£????¨???°???????????????
 ???????????¨???????????¨???????????????????????§?????????
 5.??¨?????????????????????????????´???????????????????????¨?????????????????????*/


using System;

namespace aoj11d
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());          //?????????????????°

            DICE[] dicecase = new DICE[n];                  //n??????????´??????????DICE?????????????????£?¨? ??????????????????????????????

            /*??????????´???????????????????????????????*/
            for(int i = 0; i < n; i++)
            {
                dicecase[i] = new DICE(Console.ReadLine());
            }

            for(int i = 0; i < n; i++)
            {
                for(int j = i+1; j < n; j++)
                {
                    if (compareDice(dicecase[i], dicecase[j]))//???????????????true?????£??????
                    {
                        Console.WriteLine("No");    //No?????????????????????
                        return;
                    }
                }
            }

            /*?????????????????????????????????????????????????????????????????£???*/
            Console.WriteLine("Yes");



        }//Main???????????§


        /// <summary>
        /// ???????????????????????????????????????????¬?????????????????????????????????????
        /// </summary>
        /// <param name="diceA">??????????±?????????????[i]</param>
        /// <param name="diceB">??????????±?????????????[j]</param>
        /// <returns>?????´????????°true</returns>
        private static bool compareDice(DICE diceA, DICE diceB)
        {
            /*?????????????????????
             ????????¶??????_top,_front,_bottom,_back???????????????????????????????????????
             rotateDice???????????????????????????*/

            for (int i = 1; i <= 4; i++)
            {
                if (rotateDice(diceA, diceB))
                {
                    return true;
                }

                diceA.rotateN();
            }

            /*???????????§??§true?????????????????´??????N?????¢???4?????????????????¶???????????£?????????*/

            /*??????????????? ????????¶??????_right???????????????????????????rotateDice???????????????????????????*/
            diceA.rotateE();
                       
            if (rotateDice(diceA, diceB))
            {
                return true;
            }

            /*??????????????? ????????¶??????_left???????????????????????????rotateDice???????????????????????????*/
            diceA.rotateE();
            diceA.rotateE();

            if (rotateDice(diceA, diceB))
            {
                return true;
            }

            /*?????????????????????24???????????¨?????????????????£????????§??????????????§true?????????????????£?????´???false??§?¢????*/
            return false;
        }


 

        /// <summary>
        /// ????????????????¨???????????????¢??????????????????
        /// </summary>
        /// <param name="diceA">??????????±?????????????[i]</param>
        /// <param name="diceB">??????????±?????????????[j]</param>
        /// <returns>?????´????????°true</returns>
        private static bool rotateDice(DICE diceA, DICE diceB)
        {
            for (int i = 1; i <= 4; i++)
            {
                if (matchDice(diceA, diceB))
                {
                    return true;
                }
                diceA.rotateCW();
            }
            return false;   //false???????????´??????rotateCW???4?????????????????????????????§?????????A???????????????
        }

        /// <summary>
        /// ??????????±?????????´???????????????????????????
        /// </summary>
        /// <param name="diceA">??????????±?????????????[i]</param>
        /// <param name="diceB">??????????±?????????????[j]</param>
        /// <returns></returns>
        private static bool matchDice(DICE diceA, DICE diceB)
        {
            if (diceA._top == diceB._top && diceA._front == diceB._front && diceA._right == diceB._right
                    && diceA._left == diceB._left && diceA._back == diceB._back && diceA._bottom == diceB._bottom)
            {
                return true;
            }
            else
            {
                return false;
            }
        }


    }
    /// <summary>
    /// ?????????????????????
    /// </summary>
    internal class DICE
    {
        #region ?????£?????????
        /// <summary>
        /// ?????¢(??????)
        /// </summary>
        public int _top { get; set; }

        /// <summary>
        /// ?????¢
        /// </summary>
        public int _front { get; set; }

        /// <summary>
        /// ?????¢
        /// </summary>
        public int _right { get; set; }

        /// <summary>
        /// ?????¢
        /// </summary>
        public int _left { get; set; }

        /// <summary>
        /// ?????¢
        /// </summary>
        public int _back { get; set; }

        /// <summary>
        /// ?????¢
        /// </summary>
        public int _bottom { get; set; }
        #endregion

        /// <summary>
        /// ????????????????????? string??§?????°???????????????
        /// </summary>
        /// <param name="str"></param>
        public DICE(string str)

        {
            int[] label = new int[6];
            string[] line = str.Split(' ');
            for (int i = 0; i < 6; i++)
            {
                label[i] = int.Parse(line[i]);
            }

            _top = label[0];
            _front = label[1];
            _right = label[2];
            _left = label[3];
            _back = label[4];
            _bottom = label[5];
        }

        /// <summary>
        /// ????????????????????? ?????°???????????´??????????????§?????????
        /// </summary>
        public DICE()

        {
            _top = 1;
            _front = 2;
            _right = 3;
            _left = 4;
            _back = 5;
            _bottom = 6;
        }

        /// <summary>
        /// ??????????????°?????¶??????1????????¨???
        /// </summary>
        internal void show()
        {
            Console.WriteLine(_top + " " + _front + " " + _right + " " + _left + " " + _back + " " + _bottom);
        }

        /// <summary>
        /// N???????????¢
        /// </summary>
        internal void rotateN()
        {
            int tmp = _top;
            _top = _front;
            _front = _bottom;
            _bottom = _back;
            _back = tmp;
        }

        /// <summary>
        /// S???????????¢
        /// </summary>
        internal void rotateS()
        {
            rotateN();
            rotateN();
            rotateN();
        }

        /// <summary>
        /// E???????????¢
        /// </summary>
        internal void rotateE()
        {
            int tmp = _top;
            _top = _left;
            _left = _bottom;
            _bottom = _right;
            _right = tmp;
        }

        /// <summary>
        /// W???????????¢
        /// </summary>
        internal void rotateW()
        {
            rotateE();
            rotateE();
            rotateE();
        }

        /// <summary>
        /// TOP????????????????¨???????
        /// </summary>
        internal void rotateCW()
        {
            int tmp = _front;
            _front = _right;
            _right = _back;
            _back = _left;
            _left = tmp;
        }
    }
}

Measured memory_bytes: 8848