import java.util.Scanner;

public class Main {
	public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        Main m = new Main(sc);
        m.show(m.solve());
        sc.close();
    }
    
	//フィールド
    Scanner sc;
    int N;
    String[] W;
    
    //入力
    Main(Scanner sc) {
        this.sc = sc;
        N = sc.nextInt();
        W = new String[N];
        for (int i=0; i<N; i++) {
        	W[i] = sc.next();
        }
    }
    
    //解答処理
    private boolean solve() {
        boolean answer = true;
        
        for (int i=1; i<N; i++) {
        	if (!(W[i-1].charAt(W[i-1].length()-1) == W[i].charAt(0))) {
        		answer = false;
        		break;
        	}
        	for (int j=0; j<i; j++) {
        		if (W[i].equals(W[j])) {
        			answer = false;
            		break;
        		}
        	}
        }
        
        return answer;
    }
    
    //出力
    public void show(boolean answer) {
        if (answer) {
        	System.out.println("Yes");
        } else {
        	System.out.println("No");
        }
    }

} import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        Main m = new Main(sc);
        m.show(m.solve());
        sc.close();
    }
    
	//フィールド
    Scanner sc;
    int N;
    String[] W;
    
    //入力
    Main(Scanner sc) {
        this.sc = sc;
        N = sc.nextInt();
        W = new String[N];
        for (int i=0; i<N; i++) {
        	W[i] = sc.next();
        }
    }
    
    //解答処理
    private boolean solve() {
        boolean answer = true;
        
        for (int i=1; i<N; i++) {
        	if (!(W[i-1].charAt(W[i-1].length()-1) == W[i].charAt(0))) {
        		answer = false;
        		break;
        	}
        	for (int j=0; j<i; j++) {
        		if (W[i].equals(W[j])) {
        			answer = false;
            		break;
        		}
        	}
        }
        
        return answer;
    }
    
    //出力
    public void show(boolean answer) {
        if (answer) {
        	System.out.println("Yes");
        } else {
        	System.out.println("No");
        }
    }

} Main //フィールド
    Scanner sc; sc int N; N String[] W; W public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        Main m = new Main(sc);
        m.show(m.solve());
        sc.close();
    } main {
        Scanner sc = new Scanner(System.in);
        Main m = new Main(sc);
        m.show(m.solve());
        sc.close();
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) Main m = new Main(sc); m new Main(sc) m.show(m.solve()) m.show m m.solve() m.solve m sc.close() sc.close sc String[] args args //入力
    Main(Scanner sc) {
        this.sc = sc;
        N = sc.nextInt();
        W = new String[N];
        for (int i=0; i<N; i++) {
        	W[i] = sc.next();
        }
    } Main {
        this.sc = sc;
        N = sc.nextInt();
        W = new String[N];
        for (int i=0; i<N; i++) {
        	W[i] = sc.next();
        }
    } this.sc = sc this.sc this this.sc sc N = sc.nextInt() N sc.nextInt() sc.nextInt sc 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 Scanner sc sc //解答処理
    private boolean solve() {
        boolean answer = true;
        
        for (int i=1; i<N; i++) {
        	if (!(W[i-1].charAt(W[i-1].length()-1) == W[i].charAt(0))) {
        		answer = false;
        		break;
        	}
        	for (int j=0; j<i; j++) {
        		if (W[i].equals(W[j])) {
        			answer = false;
            		break;
        		}
        	}
        }
        
        return answer;
    } solve {
        boolean answer = true;
        
        for (int i=1; i<N; i++) {
        	if (!(W[i-1].charAt(W[i-1].length()-1) == W[i].charAt(0))) {
        		answer = false;
        		break;
        	}
        	for (int j=0; j<i; j++) {
        		if (W[i].equals(W[j])) {
        			answer = false;
            		break;
        		}
        	}
        }
        
        return answer;
    } boolean answer = true; answer true for (int i=1; i<N; i++) {
        	if (!(W[i-1].charAt(W[i-1].length()-1) == W[i].charAt(0))) {
        		answer = false;
        		break;
        	}
        	for (int j=0; j<i; j++) {
        		if (W[i].equals(W[j])) {
        			answer = false;
            		break;
        		}
        	}
        } int i=1; int i=1; i 1 i<N i N i++ i++ i {
        	if (!(W[i-1].charAt(W[i-1].length()-1) == W[i].charAt(0))) {
        		answer = false;
        		break;
        	}
        	for (int j=0; j<i; j++) {
        		if (W[i].equals(W[j])) {
        			answer = false;
            		break;
        		}
        	}
        } {
        	if (!(W[i-1].charAt(W[i-1].length()-1) == W[i].charAt(0))) {
        		answer = false;
        		break;
        	}
        	for (int j=0; j<i; j++) {
        		if (W[i].equals(W[j])) {
        			answer = false;
            		break;
        		}
        	}
        } if (!(W[i-1].charAt(W[i-1].length()-1) == W[i].charAt(0))) {
        		answer = false;
        		break;
        	} !(W[i-1].charAt(W[i-1].length()-1) == W[i].charAt(0)) (W[i-1].charAt(W[i-1].length()-1) == W[i].charAt(0)) W[i-1].charAt(W[i-1].length()-1) W[i-1].charAt W[i-1] W i-1 i 1 W[i-1].length()-1 W[i-1].length() W[i-1].length W[i-1] W i-1 i 1 1 W[i].charAt(0) W[i].charAt W[i] W i 0 {
        		answer = false;
        		break;
        	} answer = false answer false break; for (int j=0; j<i; j++) {
        		if (W[i].equals(W[j])) {
        			answer = false;
            		break;
        		}
        	} int j=0; int j=0; j 0 j<i j i j++ j++ j {
        		if (W[i].equals(W[j])) {
        			answer = false;
            		break;
        		}
        	} {
        		if (W[i].equals(W[j])) {
        			answer = false;
            		break;
        		}
        	} if (W[i].equals(W[j])) {
        			answer = false;
            		break;
        		} W[i].equals(W[j]) W[i].equals W[i] W i W[j] W j {
        			answer = false;
            		break;
        		} answer = false answer false break; return answer; answer //出力
    public void show(boolean answer) {
        if (answer) {
        	System.out.println("Yes");
        } else {
        	System.out.println("No");
        }
    } show {
        if (answer) {
        	System.out.println("Yes");
        } else {
        	System.out.println("No");
        }
    } if (answer) {
        	System.out.println("Yes");
        } else {
        	System.out.println("No");
        } answer {
        	System.out.println("Yes");
        } System.out.println("Yes") System.out.println System.out System System.out "Yes" {
        	System.out.println("No");
        } System.out.println("No") System.out.println System.out System System.out "No" boolean answer answer public class Main {
	public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        Main m = new Main(sc);
        m.show(m.solve());
        sc.close();
    }
    
	//フィールド
    Scanner sc;
    int N;
    String[] W;
    
    //入力
    Main(Scanner sc) {
        this.sc = sc;
        N = sc.nextInt();
        W = new String[N];
        for (int i=0; i<N; i++) {
        	W[i] = sc.next();
        }
    }
    
    //解答処理
    private boolean solve() {
        boolean answer = true;
        
        for (int i=1; i<N; i++) {
        	if (!(W[i-1].charAt(W[i-1].length()-1) == W[i].charAt(0))) {
        		answer = false;
        		break;
        	}
        	for (int j=0; j<i; j++) {
        		if (W[i].equals(W[j])) {
        			answer = false;
            		break;
        		}
        	}
        }
        
        return answer;
    }
    
    //出力
    public void show(boolean answer) {
        if (answer) {
        	System.out.println("Yes");
        } else {
        	System.out.println("No");
        }
    }

} public class Main {
	public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        Main m = new Main(sc);
        m.show(m.solve());
        sc.close();
    }
    
	//フィールド
    Scanner sc;
    int N;
    String[] W;
    
    //入力
    Main(Scanner sc) {
        this.sc = sc;
        N = sc.nextInt();
        W = new String[N];
        for (int i=0; i<N; i++) {
        	W[i] = sc.next();
        }
    }
    
    //解答処理
    private boolean solve() {
        boolean answer = true;
        
        for (int i=1; i<N; i++) {
        	if (!(W[i-1].charAt(W[i-1].length()-1) == W[i].charAt(0))) {
        		answer = false;
        		break;
        	}
        	for (int j=0; j<i; j++) {
        		if (W[i].equals(W[j])) {
        			answer = false;
            		break;
        		}
        	}
        }
        
        return answer;
    }
    
    //出力
    public void show(boolean answer) {
        if (answer) {
        	System.out.println("Yes");
        } else {
        	System.out.println("No");
        }
    }

} Main
import java.util.Scanner;

public class Main {
	public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        Main m = new Main(sc);
        m.show(m.solve());
        sc.close();
    }
    
	//フィールド
    Scanner sc;
    int N;
    String[] W;
    
    //入力
    Main(Scanner sc) {
        this.sc = sc;
        N = sc.nextInt();
        W = new String[N];
        for (int i=0; i<N; i++) {
        	W[i] = sc.next();
        }
    }
    
    //解答処理
    private boolean solve() {
        boolean answer = true;
        
        for (int i=1; i<N; i++) {
        	if (!(W[i-1].charAt(W[i-1].length()-1) == W[i].charAt(0))) {
        		answer = false;
        		break;
        	}
        	for (int j=0; j<i; j++) {
        		if (W[i].equals(W[j])) {
        			answer = false;
            		break;
        		}
        	}
        }
        
        return answer;
    }
    
    //出力
    public void show(boolean answer) {
        if (answer) {
        	System.out.println("Yes");
        } else {
        	System.out.println("No");
        }
    }

}
