import java.util.*;
public class Main{
	static String ShiriJudge(int m,String[] s){
		boolean bl = true;
		for(int i=0; i<m-1; i++){
			if(s[i].charAt(s[i].length()-1) != (s[i+1].charAt(0)))return "No";
		}
		for(int i=0; i<m; i++){
			for(int j=i+1; j<m; j++){
				if(s[i].equals(s[j]))return "No";
			}
		}
		return "Yes";
	}

	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();
		}
		System.out.println(ShiriJudge(n,w));
	}
} import java.util.*; util.* java public class Main{
	static String ShiriJudge(int m,String[] s){
		boolean bl = true;
		for(int i=0; i<m-1; i++){
			if(s[i].charAt(s[i].length()-1) != (s[i+1].charAt(0)))return "No";
		}
		for(int i=0; i<m; i++){
			for(int j=i+1; j<m; j++){
				if(s[i].equals(s[j]))return "No";
			}
		}
		return "Yes";
	}

	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();
		}
		System.out.println(ShiriJudge(n,w));
	}
} Main static String ShiriJudge(int m,String[] s){
		boolean bl = true;
		for(int i=0; i<m-1; i++){
			if(s[i].charAt(s[i].length()-1) != (s[i+1].charAt(0)))return "No";
		}
		for(int i=0; i<m; i++){
			for(int j=i+1; j<m; j++){
				if(s[i].equals(s[j]))return "No";
			}
		}
		return "Yes";
	} ShiriJudge {
		boolean bl = true;
		for(int i=0; i<m-1; i++){
			if(s[i].charAt(s[i].length()-1) != (s[i+1].charAt(0)))return "No";
		}
		for(int i=0; i<m; i++){
			for(int j=i+1; j<m; j++){
				if(s[i].equals(s[j]))return "No";
			}
		}
		return "Yes";
	} boolean bl = true; bl true for(int i=0; i<m-1; i++){
			if(s[i].charAt(s[i].length()-1) != (s[i+1].charAt(0)))return "No";
		} int i=0; int i=0; i 0 i<m-1 i m-1 m 1 i++ i++ i {
			if(s[i].charAt(s[i].length()-1) != (s[i+1].charAt(0)))return "No";
		} {
			if(s[i].charAt(s[i].length()-1) != (s[i+1].charAt(0)))return "No";
		} if(s[i].charAt(s[i].length()-1) != (s[i+1].charAt(0)))return "No"; s[i].charAt(s[i].length()-1) != (s[i+1].charAt(0)) s[i].charAt(s[i].length()-1) s[i].charAt s[i] s i s[i].length()-1 s[i].length() s[i].length s[i] s i 1 (s[i+1].charAt(0)) s[i+1].charAt s[i+1] s i+1 i 1 0 return "No"; "No" for(int i=0; i<m; i++){
			for(int j=i+1; j<m; j++){
				if(s[i].equals(s[j]))return "No";
			}
		} int i=0; int i=0; i 0 i<m i m i++ i++ i {
			for(int j=i+1; j<m; j++){
				if(s[i].equals(s[j]))return "No";
			}
		} {
			for(int j=i+1; j<m; j++){
				if(s[i].equals(s[j]))return "No";
			}
		} for(int j=i+1; j<m; j++){
				if(s[i].equals(s[j]))return "No";
			} int j=i+1; int j=i+1; j i+1 i 1 j<m j m j++ j++ j {
				if(s[i].equals(s[j]))return "No";
			} {
				if(s[i].equals(s[j]))return "No";
			} if(s[i].equals(s[j]))return "No"; s[i].equals(s[j]) s[i].equals s[i] s i s[j] s j return "No"; "No" return "Yes"; "Yes" int m m String[] s s 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();
		}
		System.out.println(ShiriJudge(n,w));
	} 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();
		}
		System.out.println(ShiriJudge(n,w));
	} 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 System.out.println(ShiriJudge(n,w)) System.out.println System.out System System.out ShiriJudge(n,w) ShiriJudge n w String[] args args public class Main{
	static String ShiriJudge(int m,String[] s){
		boolean bl = true;
		for(int i=0; i<m-1; i++){
			if(s[i].charAt(s[i].length()-1) != (s[i+1].charAt(0)))return "No";
		}
		for(int i=0; i<m; i++){
			for(int j=i+1; j<m; j++){
				if(s[i].equals(s[j]))return "No";
			}
		}
		return "Yes";
	}

	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();
		}
		System.out.println(ShiriJudge(n,w));
	}
} public class Main{
	static String ShiriJudge(int m,String[] s){
		boolean bl = true;
		for(int i=0; i<m-1; i++){
			if(s[i].charAt(s[i].length()-1) != (s[i+1].charAt(0)))return "No";
		}
		for(int i=0; i<m; i++){
			for(int j=i+1; j<m; j++){
				if(s[i].equals(s[j]))return "No";
			}
		}
		return "Yes";
	}

	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();
		}
		System.out.println(ShiriJudge(n,w));
	}
} Main
import java.util.*;
public class Main{
	static String ShiriJudge(int m,String[] s){
		boolean bl = true;
		for(int i=0; i<m-1; i++){
			if(s[i].charAt(s[i].length()-1) != (s[i+1].charAt(0)))return "No";
		}
		for(int i=0; i<m; i++){
			for(int j=i+1; j<m; j++){
				if(s[i].equals(s[j]))return "No";
			}
		}
		return "Yes";
	}

	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();
		}
		System.out.println(ShiriJudge(n,w));
	}
}