import java.util.*;

public class Main {

  public static void main (String[] args) {

    Scanner sc = new Scanner(System.in);
    
    int N = sc.nextInt();
    String[] W = new String[N];

    for (int i = 0; i < N; i++) {
      W[i] = sc.next();
    }

    sc.close();

    String result = "Yes";

    for (int i = 0; i < N; i++) {
      for (int j = i + 1; j < N; j++) {
        if (W[i].equals(W[j])) {
          result = "No";
          break;
        }
      }
      if (result == "No") {
        break;
      }
    }

    String start = "";

    if (result == "Yes") {
      for (int i = 0; i < N; i++) {
        if (i != 0) {
          String[] s_ = W[i].split("");
          if (s_[0].equals(start)) {
            start = s_[s_.length - 1];
          } else {
            result = "No";
            break;
          }
        } else {
          String[] s_ = W[i].split("");
          start = s_[s_.length - 1];
        }
      } 
    }

    System.out.println(result);

  }

} import java.util.*; util.* java public class Main {

  public static void main (String[] args) {

    Scanner sc = new Scanner(System.in);
    
    int N = sc.nextInt();
    String[] W = new String[N];

    for (int i = 0; i < N; i++) {
      W[i] = sc.next();
    }

    sc.close();

    String result = "Yes";

    for (int i = 0; i < N; i++) {
      for (int j = i + 1; j < N; j++) {
        if (W[i].equals(W[j])) {
          result = "No";
          break;
        }
      }
      if (result == "No") {
        break;
      }
    }

    String start = "";

    if (result == "Yes") {
      for (int i = 0; i < N; i++) {
        if (i != 0) {
          String[] s_ = W[i].split("");
          if (s_[0].equals(start)) {
            start = s_[s_.length - 1];
          } else {
            result = "No";
            break;
          }
        } else {
          String[] s_ = W[i].split("");
          start = s_[s_.length - 1];
        }
      } 
    }

    System.out.println(result);

  }

} Main public static void main (String[] args) {

    Scanner sc = new Scanner(System.in);
    
    int N = sc.nextInt();
    String[] W = new String[N];

    for (int i = 0; i < N; i++) {
      W[i] = sc.next();
    }

    sc.close();

    String result = "Yes";

    for (int i = 0; i < N; i++) {
      for (int j = i + 1; j < N; j++) {
        if (W[i].equals(W[j])) {
          result = "No";
          break;
        }
      }
      if (result == "No") {
        break;
      }
    }

    String start = "";

    if (result == "Yes") {
      for (int i = 0; i < N; i++) {
        if (i != 0) {
          String[] s_ = W[i].split("");
          if (s_[0].equals(start)) {
            start = s_[s_.length - 1];
          } else {
            result = "No";
            break;
          }
        } else {
          String[] s_ = W[i].split("");
          start = s_[s_.length - 1];
        }
      } 
    }

    System.out.println(result);

  } main {

    Scanner sc = new Scanner(System.in);
    
    int N = sc.nextInt();
    String[] W = new String[N];

    for (int i = 0; i < N; i++) {
      W[i] = sc.next();
    }

    sc.close();

    String result = "Yes";

    for (int i = 0; i < N; i++) {
      for (int j = i + 1; j < N; j++) {
        if (W[i].equals(W[j])) {
          result = "No";
          break;
        }
      }
      if (result == "No") {
        break;
      }
    }

    String start = "";

    if (result == "Yes") {
      for (int i = 0; i < N; i++) {
        if (i != 0) {
          String[] s_ = W[i].split("");
          if (s_[0].equals(start)) {
            start = s_[s_.length - 1];
          } else {
            result = "No";
            break;
          }
        } else {
          String[] s_ = W[i].split("");
          start = s_[s_.length - 1];
        }
      } 
    }

    System.out.println(result);

  } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc String[] W = new String[N]; W new String[N] N for (int i = 0; i < N; i++) {
      W[i] = sc.next();
    } int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
      W[i] = sc.next();
    } {
      W[i] = sc.next();
    } W[i] = sc.next() W[i] W i sc.next() sc.next sc sc.close() sc.close sc String result = "Yes"; result "Yes" for (int i = 0; i < N; i++) {
      for (int j = i + 1; j < N; j++) {
        if (W[i].equals(W[j])) {
          result = "No";
          break;
        }
      }
      if (result == "No") {
        break;
      }
    } int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
      for (int j = i + 1; j < N; j++) {
        if (W[i].equals(W[j])) {
          result = "No";
          break;
        }
      }
      if (result == "No") {
        break;
      }
    } {
      for (int j = i + 1; j < N; j++) {
        if (W[i].equals(W[j])) {
          result = "No";
          break;
        }
      }
      if (result == "No") {
        break;
      }
    } for (int j = i + 1; j < N; j++) {
        if (W[i].equals(W[j])) {
          result = "No";
          break;
        }
      } int j = i + 1; int j = i + 1; j i + 1 i 1 j < N j N j++ j++ j {
        if (W[i].equals(W[j])) {
          result = "No";
          break;
        }
      } {
        if (W[i].equals(W[j])) {
          result = "No";
          break;
        }
      } if (W[i].equals(W[j])) {
          result = "No";
          break;
        } W[i].equals(W[j]) W[i].equals W[i] W i W[j] W j {
          result = "No";
          break;
        } result = "No" result "No" break; if (result == "No") {
        break;
      } result == "No" result "No" {
        break;
      } break; String start = ""; start "" if (result == "Yes") {
      for (int i = 0; i < N; i++) {
        if (i != 0) {
          String[] s_ = W[i].split("");
          if (s_[0].equals(start)) {
            start = s_[s_.length - 1];
          } else {
            result = "No";
            break;
          }
        } else {
          String[] s_ = W[i].split("");
          start = s_[s_.length - 1];
        }
      } 
    } result == "Yes" result "Yes" {
      for (int i = 0; i < N; i++) {
        if (i != 0) {
          String[] s_ = W[i].split("");
          if (s_[0].equals(start)) {
            start = s_[s_.length - 1];
          } else {
            result = "No";
            break;
          }
        } else {
          String[] s_ = W[i].split("");
          start = s_[s_.length - 1];
        }
      } 
    } for (int i = 0; i < N; i++) {
        if (i != 0) {
          String[] s_ = W[i].split("");
          if (s_[0].equals(start)) {
            start = s_[s_.length - 1];
          } else {
            result = "No";
            break;
          }
        } else {
          String[] s_ = W[i].split("");
          start = s_[s_.length - 1];
        }
      } int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
        if (i != 0) {
          String[] s_ = W[i].split("");
          if (s_[0].equals(start)) {
            start = s_[s_.length - 1];
          } else {
            result = "No";
            break;
          }
        } else {
          String[] s_ = W[i].split("");
          start = s_[s_.length - 1];
        }
      } {
        if (i != 0) {
          String[] s_ = W[i].split("");
          if (s_[0].equals(start)) {
            start = s_[s_.length - 1];
          } else {
            result = "No";
            break;
          }
        } else {
          String[] s_ = W[i].split("");
          start = s_[s_.length - 1];
        }
      } if (i != 0) {
          String[] s_ = W[i].split("");
          if (s_[0].equals(start)) {
            start = s_[s_.length - 1];
          } else {
            result = "No";
            break;
          }
        } else {
          String[] s_ = W[i].split("");
          start = s_[s_.length - 1];
        } i != 0 i 0 {
          String[] s_ = W[i].split("");
          if (s_[0].equals(start)) {
            start = s_[s_.length - 1];
          } else {
            result = "No";
            break;
          }
        } String[] s_ = W[i].split(""); s_ W[i].split("") W[i].split W[i] W i "" if (s_[0].equals(start)) {
            start = s_[s_.length - 1];
          } else {
            result = "No";
            break;
          } s_[0].equals(start) s_[0].equals s_[0] s_ 0 start {
            start = s_[s_.length - 1];
          } start = s_[s_.length - 1] start s_[s_.length - 1] s_ s_.length - 1 s_.length s_ s_.length 1 {
            result = "No";
            break;
          } result = "No" result "No" break; {
          String[] s_ = W[i].split("");
          start = s_[s_.length - 1];
        } String[] s_ = W[i].split(""); s_ W[i].split("") W[i].split W[i] W i "" start = s_[s_.length - 1] start s_[s_.length - 1] s_ s_.length - 1 s_.length s_ s_.length 1 System.out.println(result) System.out.println System.out System System.out result String[] args args public class Main {

  public static void main (String[] args) {

    Scanner sc = new Scanner(System.in);
    
    int N = sc.nextInt();
    String[] W = new String[N];

    for (int i = 0; i < N; i++) {
      W[i] = sc.next();
    }

    sc.close();

    String result = "Yes";

    for (int i = 0; i < N; i++) {
      for (int j = i + 1; j < N; j++) {
        if (W[i].equals(W[j])) {
          result = "No";
          break;
        }
      }
      if (result == "No") {
        break;
      }
    }

    String start = "";

    if (result == "Yes") {
      for (int i = 0; i < N; i++) {
        if (i != 0) {
          String[] s_ = W[i].split("");
          if (s_[0].equals(start)) {
            start = s_[s_.length - 1];
          } else {
            result = "No";
            break;
          }
        } else {
          String[] s_ = W[i].split("");
          start = s_[s_.length - 1];
        }
      } 
    }

    System.out.println(result);

  }

} public class Main {

  public static void main (String[] args) {

    Scanner sc = new Scanner(System.in);
    
    int N = sc.nextInt();
    String[] W = new String[N];

    for (int i = 0; i < N; i++) {
      W[i] = sc.next();
    }

    sc.close();

    String result = "Yes";

    for (int i = 0; i < N; i++) {
      for (int j = i + 1; j < N; j++) {
        if (W[i].equals(W[j])) {
          result = "No";
          break;
        }
      }
      if (result == "No") {
        break;
      }
    }

    String start = "";

    if (result == "Yes") {
      for (int i = 0; i < N; i++) {
        if (i != 0) {
          String[] s_ = W[i].split("");
          if (s_[0].equals(start)) {
            start = s_[s_.length - 1];
          } else {
            result = "No";
            break;
          }
        } else {
          String[] s_ = W[i].split("");
          start = s_[s_.length - 1];
        }
      } 
    }

    System.out.println(result);

  }

} Main
import java.util.*;

public class Main {

  public static void main (String[] args) {

    Scanner sc = new Scanner(System.in);
    
    int N = sc.nextInt();
    String[] W = new String[N];

    for (int i = 0; i < N; i++) {
      W[i] = sc.next();
    }

    sc.close();

    String result = "Yes";

    for (int i = 0; i < N; i++) {
      for (int j = i + 1; j < N; j++) {
        if (W[i].equals(W[j])) {
          result = "No";
          break;
        }
      }
      if (result == "No") {
        break;
      }
    }

    String start = "";

    if (result == "Yes") {
      for (int i = 0; i < N; i++) {
        if (i != 0) {
          String[] s_ = W[i].split("");
          if (s_[0].equals(start)) {
            start = s_[s_.length - 1];
          } else {
            result = "No";
            break;
          }
        } else {
          String[] s_ = W[i].split("");
          start = s_[s_.length - 1];
        }
      } 
    }

    System.out.println(result);

  }

}