object Main {
  def main(args: Array[String]): Unit = {
    val scanner = new java.util.Scanner(System.in)

    val n = scanner.nextInt
    val t1, s1, e1, w1, n1, b1 = scanner.nextInt
    var d1 = Dice(t1, n1, e1, s1, w1, b1)

    for(_ <- 2 to n) {
      val t2, s2, e2, w2, n2, b2 = scanner.nextInt
      val d2 = Dice(t2, n2, e2, s2, w2, b2)

      if(d1.t == d2.e) d1 = d1.rotW()
      if(d1.t == d2.w) d1 = d1.rotE()
      if(d1.t != d2.t) d1 = d1.rotN()
      if(d1.t != d2.t) d1 = d1.rotN()
      if(d1.t != d2.t) d1 = d1.rotN()
      if(d1.n != d2.n) d1 = d1.rot()
      if(d1.n != d2.n) d1 = d1.rot()
      if(d1.n != d2.n) d1 = d1.rot()
      if(d1.equals(d2)) {
        println("No")
        System.exit(0)
      }
    }

    println("Yes")
  }
}

case class Dice(t: Int, n: Int, e: Int, s: Int, w: Int, b: Int) {
  def rotN(): Dice = Dice(s, t, e, b, w, n)
  def rotS(): Dice = Dice(n, b, e, t, w, s)
  def rotW(): Dice = Dice(e, n, b, s, t, w)
  def rotE(): Dice = Dice(w, n, t, s, b, e)
  def rot(): Dice = Dice(t, e, s, w, n, b)
  def equals(that: Dice): Boolean = (t == that.t && n == that.n && e == that.e && s == that.s && w == that.w && b == that.b)
}

