import Data.List
import Control.Monad

f::[String]->Bool
f []=True
f (x:[])=True
f (x:y:ys)=if (last x)==(head y) then  f(y:ys) else False

main = do
       n<-readLn
       ws<-replicateM n getLine
       let ws2=nub ws
       putStrLn $ if (length ws2)==(length ws) && (f ws) then "Yes" else "No"