import Control.Monad
import Data.List

hasNoDuplicates :: [String] -> Bool
hasNoDuplicates list = (length list) == (length $ nub list)

isShiritori :: [String] -> Bool
isShiritori [x1,x2] = (last x1) == (head x2)
isShiritori (x1:remains@(x2:xs))
  | (last x1) /= (head x2) = False
  | otherwise              = isShiritori remains

main :: IO ()
main = do
  count <- readLn
  words <- replicateM count getLine
  putStrLn $ if (isShiritori words) && (hasNoDuplicates words) then "Yes" else "No"