import java.util.Scanner

object Main{
  def main(args: Array[String]): Unit = {
    val scanner = new Scanner(System.in)
    val n: Int = scanner.nextInt
    val words: List[String] = List.fill(n)(scanner.next)
    val already: List[String] = List(words.head)

    println(isEstablish(n, words.head, words.tail, already))
  }

  /**
    * しりとりが成立するか調べる
    * rule -> 未発言の単語　かつ　直前の単語の末尾とその単語の先頭が一致する
    * @return "Yes" or "No"
    */
  def isEstablish(n:Int, head:String, tail:List[String], already: List[String]) :String ={
    n match {
      case 1 => "Yes"
      case _ =>
        (head.last == tail.head.head) match {
          case false => "No"
          case true =>
            already.contains(tail.head) match {
              case true => "No"
              case false => isEstablish(n-1, tail.head, tail.tail, tail.head :: already)
            }
        }

    }
  }
}