import java.util.*;

class Main {
    public static void main(String... args) {
        int N = IN.nextInt();
		HashSet<String> h = new HashSet<String>();
		boolean flag = true;
		String w1 = IN.next();
		h.add(w1);
		char prev = w1.charAt(w1.length() - 1);
        for (int i = 0; i < N - 1; i++) {
			String w = IN.next();
			if (h.contains(w) || prev != w.charAt(0)) {
				flag = false;
				break;
			} else {
				h.add(w);
				prev = w.charAt(w.length() - 1);
			}
		}
		puts(flag ? "Yes" : "No");
    }
    static final Scanner IN = new Scanner(System.in);
    static <T> void puts(T arg) { System.out.println(arg); }
} import java.util.*; util.* java class Main {
    public static void main(String... args) {
        int N = IN.nextInt();
		HashSet<String> h = new HashSet<String>();
		boolean flag = true;
		String w1 = IN.next();
		h.add(w1);
		char prev = w1.charAt(w1.length() - 1);
        for (int i = 0; i < N - 1; i++) {
			String w = IN.next();
			if (h.contains(w) || prev != w.charAt(0)) {
				flag = false;
				break;
			} else {
				h.add(w);
				prev = w.charAt(w.length() - 1);
			}
		}
		puts(flag ? "Yes" : "No");
    }
    static final Scanner IN = new Scanner(System.in);
    static <T> void puts(T arg) { System.out.println(arg); }
} Main static final Scanner IN = new Scanner(System.in); IN new Scanner(System.in) public static void main(String... args) {
        int N = IN.nextInt();
		HashSet<String> h = new HashSet<String>();
		boolean flag = true;
		String w1 = IN.next();
		h.add(w1);
		char prev = w1.charAt(w1.length() - 1);
        for (int i = 0; i < N - 1; i++) {
			String w = IN.next();
			if (h.contains(w) || prev != w.charAt(0)) {
				flag = false;
				break;
			} else {
				h.add(w);
				prev = w.charAt(w.length() - 1);
			}
		}
		puts(flag ? "Yes" : "No");
    } main {
        int N = IN.nextInt();
		HashSet<String> h = new HashSet<String>();
		boolean flag = true;
		String w1 = IN.next();
		h.add(w1);
		char prev = w1.charAt(w1.length() - 1);
        for (int i = 0; i < N - 1; i++) {
			String w = IN.next();
			if (h.contains(w) || prev != w.charAt(0)) {
				flag = false;
				break;
			} else {
				h.add(w);
				prev = w.charAt(w.length() - 1);
			}
		}
		puts(flag ? "Yes" : "No");
    } int N = IN.nextInt(); N IN.nextInt() IN.nextInt IN HashSet<String> h = new HashSet<String>(); h new HashSet<String>() boolean flag = true; flag true String w1 = IN.next(); w1 IN.next() IN.next IN h.add(w1) h.add h w1 char prev = w1.charAt(w1.length() - 1); prev w1.charAt(w1.length() - 1) w1.charAt w1 w1.length() - 1 w1.length() w1.length w1 1 for (int i = 0; i < N - 1; i++) {
			String w = IN.next();
			if (h.contains(w) || prev != w.charAt(0)) {
				flag = false;
				break;
			} else {
				h.add(w);
				prev = w.charAt(w.length() - 1);
			}
		} int i = 0; int i = 0; i 0 i < N - 1 i N - 1 N 1 i++ i++ i {
			String w = IN.next();
			if (h.contains(w) || prev != w.charAt(0)) {
				flag = false;
				break;
			} else {
				h.add(w);
				prev = w.charAt(w.length() - 1);
			}
		} {
			String w = IN.next();
			if (h.contains(w) || prev != w.charAt(0)) {
				flag = false;
				break;
			} else {
				h.add(w);
				prev = w.charAt(w.length() - 1);
			}
		} String w = IN.next(); w IN.next() IN.next IN if (h.contains(w) || prev != w.charAt(0)) {
				flag = false;
				break;
			} else {
				h.add(w);
				prev = w.charAt(w.length() - 1);
			} h.contains(w) || prev != w.charAt(0) h.contains(w) h.contains h w prev != w.charAt(0) prev w.charAt(0) w.charAt w 0 {
				flag = false;
				break;
			} flag = false flag false break; {
				h.add(w);
				prev = w.charAt(w.length() - 1);
			} h.add(w) h.add h w prev = w.charAt(w.length() - 1) prev w.charAt(w.length() - 1) w.charAt w w.length() - 1 w.length() w.length w 1 puts(flag ? "Yes" : "No") puts flag ? "Yes" : "No" flag "Yes" "No" String... args args static <T> void puts(T arg) { System.out.println(arg); } puts { System.out.println(arg); } System.out.println(arg) System.out.println System.out System System.out arg T arg arg
import java.util.*;

class Main {
    public static void main(String... args) {
        int N = IN.nextInt();
		HashSet<String> h = new HashSet<String>();
		boolean flag = true;
		String w1 = IN.next();
		h.add(w1);
		char prev = w1.charAt(w1.length() - 1);
        for (int i = 0; i < N - 1; i++) {
			String w = IN.next();
			if (h.contains(w) || prev != w.charAt(0)) {
				flag = false;
				break;
			} else {
				h.add(w);
				prev = w.charAt(w.length() - 1);
			}
		}
		puts(flag ? "Yes" : "No");
    }
    static final Scanner IN = new Scanner(System.in);
    static <T> void puts(T arg) { System.out.println(arg); }
}
