import java.util.ArrayList;
import java.util.Scanner;

class Main{



	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);			//文字の入力
		int N = sc.nextInt();
		ArrayList<String> cc = new ArrayList<String>();
		String[] word = new String[N];
		for(int i = 0;i < N;i++){
			word[i] = sc.next();
		}
		cc.add(word[0]);
		for(int i = 1;i < N;i++){
			if(word[i-1].charAt(word[i-1].length()-1) != word[i].charAt(0)){
				System.out.println("No");
				return;
			}else{
				for(int j = 0;j < cc.size();j++){
					if(cc.get(j).equals(word[i])){
						System.out.println("No");
						return;
					}
				}
				cc.add(word[i]);
			}
		}
		System.out.println("Yes");

	}


}




class Pair implements Comparable{
	int from;		//p
	int end;		//y
	int num;
	int bango;
	@Override
	public int compareTo(Object other) {
		Pair otherpair = (Pair)other;

		return from - otherpair.from;
	}
}
 import java.util.ArrayList; ArrayList java.util import java.util.Scanner; Scanner java.util class Main{



	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);			//文字の入力
		int N = sc.nextInt();
		ArrayList<String> cc = new ArrayList<String>();
		String[] word = new String[N];
		for(int i = 0;i < N;i++){
			word[i] = sc.next();
		}
		cc.add(word[0]);
		for(int i = 1;i < N;i++){
			if(word[i-1].charAt(word[i-1].length()-1) != word[i].charAt(0)){
				System.out.println("No");
				return;
			}else{
				for(int j = 0;j < cc.size();j++){
					if(cc.get(j).equals(word[i])){
						System.out.println("No");
						return;
					}
				}
				cc.add(word[i]);
			}
		}
		System.out.println("Yes");

	}


} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);			//文字の入力
		int N = sc.nextInt();
		ArrayList<String> cc = new ArrayList<String>();
		String[] word = new String[N];
		for(int i = 0;i < N;i++){
			word[i] = sc.next();
		}
		cc.add(word[0]);
		for(int i = 1;i < N;i++){
			if(word[i-1].charAt(word[i-1].length()-1) != word[i].charAt(0)){
				System.out.println("No");
				return;
			}else{
				for(int j = 0;j < cc.size();j++){
					if(cc.get(j).equals(word[i])){
						System.out.println("No");
						return;
					}
				}
				cc.add(word[i]);
			}
		}
		System.out.println("Yes");

	} main {
		Scanner sc = new Scanner(System.in);			//文字の入力
		int N = sc.nextInt();
		ArrayList<String> cc = new ArrayList<String>();
		String[] word = new String[N];
		for(int i = 0;i < N;i++){
			word[i] = sc.next();
		}
		cc.add(word[0]);
		for(int i = 1;i < N;i++){
			if(word[i-1].charAt(word[i-1].length()-1) != word[i].charAt(0)){
				System.out.println("No");
				return;
			}else{
				for(int j = 0;j < cc.size();j++){
					if(cc.get(j).equals(word[i])){
						System.out.println("No");
						return;
					}
				}
				cc.add(word[i]);
			}
		}
		System.out.println("Yes");

	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc ArrayList<String> cc = new ArrayList<String>(); cc new ArrayList<String>() String[] word = new String[N]; word new String[N] N for(int i = 0;i < N;i++){
			word[i] = sc.next();
		} int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
			word[i] = sc.next();
		} {
			word[i] = sc.next();
		} word[i] = sc.next() word[i] word i sc.next() sc.next sc cc.add(word[0]) cc.add cc word[0] word 0 for(int i = 1;i < N;i++){
			if(word[i-1].charAt(word[i-1].length()-1) != word[i].charAt(0)){
				System.out.println("No");
				return;
			}else{
				for(int j = 0;j < cc.size();j++){
					if(cc.get(j).equals(word[i])){
						System.out.println("No");
						return;
					}
				}
				cc.add(word[i]);
			}
		} int i = 1; int i = 1; i 1 i < N i N i++ i++ i {
			if(word[i-1].charAt(word[i-1].length()-1) != word[i].charAt(0)){
				System.out.println("No");
				return;
			}else{
				for(int j = 0;j < cc.size();j++){
					if(cc.get(j).equals(word[i])){
						System.out.println("No");
						return;
					}
				}
				cc.add(word[i]);
			}
		} {
			if(word[i-1].charAt(word[i-1].length()-1) != word[i].charAt(0)){
				System.out.println("No");
				return;
			}else{
				for(int j = 0;j < cc.size();j++){
					if(cc.get(j).equals(word[i])){
						System.out.println("No");
						return;
					}
				}
				cc.add(word[i]);
			}
		} if(word[i-1].charAt(word[i-1].length()-1) != word[i].charAt(0)){
				System.out.println("No");
				return;
			}else{
				for(int j = 0;j < cc.size();j++){
					if(cc.get(j).equals(word[i])){
						System.out.println("No");
						return;
					}
				}
				cc.add(word[i]);
			} word[i-1].charAt(word[i-1].length()-1) != word[i].charAt(0) word[i-1].charAt(word[i-1].length()-1) word[i-1].charAt word[i-1] word i-1 i 1 word[i-1].length()-1 word[i-1].length() word[i-1].length word[i-1] word i-1 i 1 1 word[i].charAt(0) word[i].charAt word[i] word i 0 {
				System.out.println("No");
				return;
			} System.out.println("No") System.out.println System.out System System.out "No" return; {
				for(int j = 0;j < cc.size();j++){
					if(cc.get(j).equals(word[i])){
						System.out.println("No");
						return;
					}
				}
				cc.add(word[i]);
			} for(int j = 0;j < cc.size();j++){
					if(cc.get(j).equals(word[i])){
						System.out.println("No");
						return;
					}
				} int j = 0; int j = 0; j 0 j < cc.size() j cc.size() cc.size cc j++ j++ j {
					if(cc.get(j).equals(word[i])){
						System.out.println("No");
						return;
					}
				} {
					if(cc.get(j).equals(word[i])){
						System.out.println("No");
						return;
					}
				} if(cc.get(j).equals(word[i])){
						System.out.println("No");
						return;
					} cc.get(j).equals(word[i]) cc.get(j).equals cc.get(j) cc.get cc j word[i] word i {
						System.out.println("No");
						return;
					} System.out.println("No") System.out.println System.out System System.out "No" return; cc.add(word[i]) cc.add cc word[i] word i System.out.println("Yes") System.out.println System.out System System.out "Yes" String[] args args class Pair implements Comparable{
	int from;		//p
	int end;		//y
	int num;
	int bango;
	@Override
	public int compareTo(Object other) {
		Pair otherpair = (Pair)other;

		return from - otherpair.from;
	}
} Pair int from;		//p from int end;		//y end int num; num int bango; bango @Override
	public int compareTo(Object other) {
		Pair otherpair = (Pair)other;

		return from - otherpair.from;
	} compareTo {
		Pair otherpair = (Pair)other;

		return from - otherpair.from;
	} Pair otherpair = (Pair)other; otherpair (Pair)other return from - otherpair.from; from - otherpair.from from otherpair.from otherpair otherpair.from Object other other Comparable
import java.util.ArrayList;
import java.util.Scanner;

class Main{



	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);			//文字の入力
		int N = sc.nextInt();
		ArrayList<String> cc = new ArrayList<String>();
		String[] word = new String[N];
		for(int i = 0;i < N;i++){
			word[i] = sc.next();
		}
		cc.add(word[0]);
		for(int i = 1;i < N;i++){
			if(word[i-1].charAt(word[i-1].length()-1) != word[i].charAt(0)){
				System.out.println("No");
				return;
			}else{
				for(int j = 0;j < cc.size();j++){
					if(cc.get(j).equals(word[i])){
						System.out.println("No");
						return;
					}
				}
				cc.add(word[i]);
			}
		}
		System.out.println("Yes");

	}


}




class Pair implements Comparable{
	int from;		//p
	int end;		//y
	int num;
	int bango;
	@Override
	public int compareTo(Object other) {
		Pair otherpair = (Pair)other;

		return from - otherpair.from;
	}
}

