import Control.Applicative

data Dice = Dice { diceTop    :: String
                 , diceFront  :: String
                 , diceRight  :: String
                 , diceLeft   :: String
                 , diceBack   :: String
                 , diceBottom :: String
                 } deriving (Show, Eq)

makeDice :: [String] -> Dice
makeDice (t:f:r:l:b:bo:[]) = Dice t f r l b bo

diceToN :: Dice -> Dice
diceToN dice = dice { diceTop    = diceFront dice
                    , diceFront  = diceBottom dice
                    , diceBottom = diceBack dice
                    , diceBack   = diceTop dice
                    }

diceToS :: Dice -> Dice
diceToS dice = dice { diceTop    = diceBack dice
                    , diceFront  = diceTop dice
                    , diceBottom = diceFront dice
                    , diceBack   = diceBottom dice
                    }

diceToE :: Dice -> Dice
diceToE dice = dice { diceTop    = diceLeft dice
                    , diceLeft   = diceBottom dice
                    , diceBottom = diceRight dice
                    , diceRight  = diceTop dice
                    }

diceToW :: Dice -> Dice
diceToW dice = dice { diceTop    = diceRight dice
                    , diceLeft   = diceTop dice
                    , diceBottom = diceLeft dice
                    , diceRight  = diceBottom dice
                    }

diceMoveTo :: Char -> Dice -> Dice
diceMoveTo 'N' = diceToN
diceMoveTo 'S' = diceToS
diceMoveTo 'E' = diceToE
diceMoveTo 'W' = diceToW

diceMoves :: String -> Dice -> Dice
diceMoves []     dice = dice
diceMoves (s:ss) dice = diceMoves ss $ diceMoveTo s dice

diceMoveToTopFront :: String -> String -> Dice -> Dice
diceMoveToTopFront top front = moveToTop top . moveToFront front
  where
      moveToTop top dice
        | top == diceTop dice    = dice
        | top == diceBottom dice = diceMoves "EE" dice
        | top == diceLeft dice   = diceMoves "E"  dice
        | top == diceRight dice  = diceMoves "W"  dice
        | otherwise = dice
      moveToFront front dice
        | front == diceTop dice    = diceMoves "S"  dice
        | front == diceBottom dice = diceMoves "N"  dice
        | front == diceFront dice  = dice
        | front == diceBack dice   = diceMoves "NN" dice
        | front == diceLeft dice   = diceMoves "ES" dice
        | front == diceRight dice  = diceMoves "WS" dice
        | otherwise = dice

main :: IO ()
main = do
    n <- (\n -> read n :: Int) <$> getLine
    dice <- makeDice.words <$> getLine
    ans  <- compareDices (n - 1) dice

    if ans
       then putStrLn "Yes"
       else putStrLn "No"
  where
      compareDices :: Int -> Dice -> IO Bool
      compareDices 0 _    = return True
      compareDices n dice1 = do
          dice2 <- makeDice.words <$> getLine

          if dice1 == diceMoveToTopFront (diceTop dice1) (diceFront dice1) dice2
             then return False
             else compareDices (n - 1) dice1

