import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
import java.util.Collection;
import java.lang.StringBuffer;

/*Question
/Dice I ??¨????§????????????§?????\??????????????°????????? n ???????????????????????????????????????
/????????????????????????????????¨?????°???????????????????????????????????????????????°????????????????????????????????????
/?????????????????????????????? Dice III ??????????????¨???????????? 
*/

/*Input
/????????????????????????????????° n ?????????????????????????¶???? n??????????????????????????¢?????°???????????????????????????
/????????????????????????????????¢?????°???????????????????????????????????????????????§?????????????????????????????? 
*/

public class Main {
	public static void main(String[] args) throws Exception{
		BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
		//?????????????´???¨
		String o = "N";
		String ju = "N";
		//?????¢??????????????????????????¨	
		String v;
		//?¨??????????????´???¨
		Integer[] t2 = new Integer[4];
		/*??\?????????1
		/?????????????????°?????\???
		/?????¢?????°?????¨?¨????????????????????????¢?????????
		/?????????????????????
		*/
		int n = Integer.parseInt(sc.readLine());
		String[] st = sc.readLine().split(" ");
		int[] t = new int[st.length];
		for(int i = 0;i < st.length;i++){
			t[i] = Integer.parseInt(st[i]);
		}
		int ue = t[0];
		int tei = t[5];
		Integer[] t1 = {t[1],t[2],t[4],t[3]};
		/*??\?????????2
		/?????????????????°-1???????????????
		/??????????????????????????????String??§????????§?????????Integer??????????????????List<Integer>???
		/List?????´??????????????????
		/Integer[]??????List?????????????????????Arrays.asList????????£????????????????????????List?????\????????´????????????????????????????????§????????????????????§??¨???
		*/
		for(int ii = 1;ii < n;ii++){
			st = sc.readLine().split(" ");
			if(!ju.equals("No")){
				for(int i = 0;i < st.length;i++){
					t[i] = Integer.parseInt(st[i]);
				}
				Integer[] t3 = {t[0],t[1],t[5],t[4]};
				List<Integer> x = new ArrayList<Integer>();
				x.addAll(Arrays.asList(t3));
				Integer[] t4 = {t[0],t[2],t[5],t[3]};
				List<Integer> y = new ArrayList<Integer>();
				y.addAll(Arrays.asList(t4));
				/*?????´????????????????????????
				/rotate???????????????List??¨????????????????????????????????¢?????????
				/rot???????????????????????????????????¢????????????(match)?????????
				/syu?????????????????¢??????????????¨?¨??????????(?????¢??¨?????¢??\???)?????????????????????
				/??????????????´??????????????????Y????????????o???????????????????????????ju???y?????????
				/ju???Y???????????°????????§????????´????????????break??§????????°?????????????????????????????????No???
				*/
				v = rotate(ue,x,y);
				char[] c = v.toCharArray();
				for(char match:c){
					if(match != 'F'){
						t2 = rot(match,x,y);
						if(x.get(2)==tei){
							o = syu(t1,t2);
							if(o.contains("Y")){
								ju = "No";
								break;
							}else{
								ju += "N";
							}
						}
					}
				}
			}
		}
		if(!ju.equals("No")){
			ju = ("Yes");
		}else{
			ju = ("No");
		}
		System.out.println(ju);
	}

	/*rotate????????????
	/?????¢?????????????????????
	/??????????????????????\??????????????????????????????????
	/?????????????????????????????????List??????????????????????????¶?????°??????????????????????????????
	/????????°??????????§???????????????????rot??????????????????????????????char?????????
	/@return String
	*/

	public static String rotate(int k,List<Integer> x,List<Integer> y) {
		//????????????????????¢???????????°????????????????´?
		StringBuffer j = new StringBuffer();
		/*???????????????????????¨?????¢??????????????¢??????????????¢??????1????????????????????§????????§??????
		/????????\??????2????????????????????????????????§????????§??????
		/F?????¢????????????????????????
		*/
		j.append((x.contains(k)&&y.contains(k)&&x.indexOf(k)==0)?"O":"F");
		j.append((x.get(2)==k)?"2":"F");
		j.append((x.get(1)==k)?"N":"F");
		j.append((x.get(3)==k)?"S":"F");
		j.append((y.get(1)==k)?"W":"F");
		j.append((y.get(3)==k)?"E":"F");
		//????????¨
		String v = j.toString();
		return v;
	}

	/*rot????????????
	/?????????????????????????????¢?????????
	/????????????????????¨
	/?????¢????????£?????´??????2??§????????????E??¨????????????
	/?¨???????(?????¢??¨?????¢??????????????????)??????????????????
	/@return Integer[]
	*/
	public static Integer[] rot(char c,List<Integer> x,List<Integer> y) {
		//?¨???????(?????¢??¨?????¢??????????????????)???????????????????????????????´???¨
		Integer[] l = new Integer[4];
		//?????¢????????? -??\?????????????????¨
		switch(c){
			case('E'):
			y.add(0,y.get(y.size()-1));
			y.remove(y.size()-1);
			x.set(0,y.get(0));
			x.set(2,y.get(2));
			break;
			case('W'):
			y.add(y.get(0));
			y.remove(0);
			x.set(0,y.get(0));
			x.set(2,y.get(2));
			break;
			case('S'):
			x.add(0,x.get(x.size()-1));
			x.remove(x.size()-1);
			y.set(0,x.get(0));
			y.set(2,x.get(2));
			break;
			case('N'):
			x.add(x.get(0));
			x.remove(0);
			y.set(0,x.get(0));
			y.set(2,x.get(2));
			break;
			case('2'):
			for(int i = 0;i < 2;i++){
				y.add(0,y.get(y.size()-1));
				y.remove(y.size()-1);
				x.set(0,y.get(0));
				x.set(2,y.get(2));
			}
			break;
		}
		//??????????¨????????????°?????????????????£??\
		l[0] = x.get(1);
		l[1] = y.get(1);
		l[2] = x.get(3);
		l[3] = y.get(3);
		return l;
	}

	/*syu????????????
	/?????´??????????????????
	/???????´????????????¨???????????´?????????
	/F????????¢?????????????????§???????????´?????????
	/????????????1???????????¨?????????2???List??????????????¢????????´????????§?????¢?????????
	/?????´????????¨????????§???????´????????????¨???????????´????????????????????????????????§????????´??????????????°N???????????????
	/String?????????????????§???N????????????????????????????????´??¨??????
	/?????´??????Y??????????????´??????N?????????
	/??????String n???????????????n????????????????????????????????????????????????????????????return???
	/@return String
	*/
	public static String syu(Integer[] t1,Integer[] t2) {
		//????????¨
		StringBuffer br = new StringBuffer();
		//?????¢??¨
		List<Integer> tt = new ArrayList<Integer>();
		tt.addAll(Arrays.asList(t2));
			if(tt.get(0)!=t1[0]){
				do{
					tt.add(tt.get(0));
					tt.remove(0);
				}while(tt.get(0)!=t1[0]);
			}
			for(int r = 0;r < 4;r++){
				if(tt.get(r)==t1[r]){
					br.append("Y");
				}else{
					return "N";
				}
			}
			return "Y";
	}
}

Measured memory_bytes: 24456