zipAdj :: [a] -> [(a, a)]
zipAdj x = zip x $ tail x

count :: Eq a => a -> [a] -> Int
count y (x:[]) = if x == y then 1 else 0
count y (x:xs) = (if x == y then 1 else 0) + (count y xs)

main = do
    n <- readLn :: IO Int
    w <- sequence (replicate n $ getLine)
    let rule1 = all (\(w1, w2) -> (last w1) == (head w2)) (zipAdj w)
    let rule2 = all (\word -> count word w == 1) w
    putStrLn $ if rule1 && rule2 then "Yes" else "No"