let rec is_uniq l = match l with
    [] -> true
  | x::xs -> not (List.mem x xs) && is_uniq xs;;

let rec ok l = match l with
    [] -> true
  | x::[] -> true
  | x::y::xs -> x.[String.length x - 1] = y.[0] && ok (y::xs);;

let n = read_int () in
let a = Array.make n "" in
for i = 0 to n - 1 do
  a.(i) <- read_line ()
done;
if is_uniq (Array.to_list a) && ok (Array.to_list a) then
  print_string "Yes"
else
  print_string "No";
print_newline ()
