import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        Map<String,Integer>po=new HashMap<String,Integer>();
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        boolean ppp=true;
        sc.nextLine();
        String g=sc.nextLine();
        po.put(g,0);
      String nstr=g.substring(g.length()-1,g.length());
        for(int i=0;i<n-1;i++){
        	String str=sc.nextLine();
            if(po.containsKey(str)){
                ppp=false;
                break;
            }
            else {
                if(nstr.equals(str.substring(0,1))){
                    nstr=str.substring(str.length()-1,str.length());
                    po.put(str,0);
                }
                else{
                    ppp=false; break;
                }
                
            }
        }
      System.out.println((ppp)?"Yes":"No");
    }
} import java.util.*; util.* java public class Main {
    public static void main(String[] args) throws Exception {
        Map<String,Integer>po=new HashMap<String,Integer>();
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        boolean ppp=true;
        sc.nextLine();
        String g=sc.nextLine();
        po.put(g,0);
      String nstr=g.substring(g.length()-1,g.length());
        for(int i=0;i<n-1;i++){
        	String str=sc.nextLine();
            if(po.containsKey(str)){
                ppp=false;
                break;
            }
            else {
                if(nstr.equals(str.substring(0,1))){
                    nstr=str.substring(str.length()-1,str.length());
                    po.put(str,0);
                }
                else{
                    ppp=false; break;
                }
                
            }
        }
      System.out.println((ppp)?"Yes":"No");
    }
} Main public static void main(String[] args) throws Exception {
        Map<String,Integer>po=new HashMap<String,Integer>();
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        boolean ppp=true;
        sc.nextLine();
        String g=sc.nextLine();
        po.put(g,0);
      String nstr=g.substring(g.length()-1,g.length());
        for(int i=0;i<n-1;i++){
        	String str=sc.nextLine();
            if(po.containsKey(str)){
                ppp=false;
                break;
            }
            else {
                if(nstr.equals(str.substring(0,1))){
                    nstr=str.substring(str.length()-1,str.length());
                    po.put(str,0);
                }
                else{
                    ppp=false; break;
                }
                
            }
        }
      System.out.println((ppp)?"Yes":"No");
    } main {
        Map<String,Integer>po=new HashMap<String,Integer>();
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        boolean ppp=true;
        sc.nextLine();
        String g=sc.nextLine();
        po.put(g,0);
      String nstr=g.substring(g.length()-1,g.length());
        for(int i=0;i<n-1;i++){
        	String str=sc.nextLine();
            if(po.containsKey(str)){
                ppp=false;
                break;
            }
            else {
                if(nstr.equals(str.substring(0,1))){
                    nstr=str.substring(str.length()-1,str.length());
                    po.put(str,0);
                }
                else{
                    ppp=false; break;
                }
                
            }
        }
      System.out.println((ppp)?"Yes":"No");
    } Map<String,Integer>po=new HashMap<String,Integer>(); po new HashMap<String,Integer>() Scanner sc=new Scanner(System.in); sc new Scanner(System.in) int n=sc.nextInt(); n sc.nextInt() sc.nextInt sc boolean ppp=true; ppp true sc.nextLine() sc.nextLine sc String g=sc.nextLine(); g sc.nextLine() sc.nextLine sc po.put(g,0) po.put po g 0 String nstr=g.substring(g.length()-1,g.length()); nstr g.substring(g.length()-1,g.length()) g.substring g g.length()-1 g.length() g.length g 1 g.length() g.length g for(int i=0;i<n-1;i++){
        	String str=sc.nextLine();
            if(po.containsKey(str)){
                ppp=false;
                break;
            }
            else {
                if(nstr.equals(str.substring(0,1))){
                    nstr=str.substring(str.length()-1,str.length());
                    po.put(str,0);
                }
                else{
                    ppp=false; break;
                }
                
            }
        } int i=0; int i=0; i 0 i<n-1 i n-1 n 1 i++ i++ i {
        	String str=sc.nextLine();
            if(po.containsKey(str)){
                ppp=false;
                break;
            }
            else {
                if(nstr.equals(str.substring(0,1))){
                    nstr=str.substring(str.length()-1,str.length());
                    po.put(str,0);
                }
                else{
                    ppp=false; break;
                }
                
            }
        } {
        	String str=sc.nextLine();
            if(po.containsKey(str)){
                ppp=false;
                break;
            }
            else {
                if(nstr.equals(str.substring(0,1))){
                    nstr=str.substring(str.length()-1,str.length());
                    po.put(str,0);
                }
                else{
                    ppp=false; break;
                }
                
            }
        } String str=sc.nextLine(); str sc.nextLine() sc.nextLine sc if(po.containsKey(str)){
                ppp=false;
                break;
            }
            else {
                if(nstr.equals(str.substring(0,1))){
                    nstr=str.substring(str.length()-1,str.length());
                    po.put(str,0);
                }
                else{
                    ppp=false; break;
                }
                
            } po.containsKey(str) po.containsKey po str {
                ppp=false;
                break;
            } ppp=false ppp false break; {
                if(nstr.equals(str.substring(0,1))){
                    nstr=str.substring(str.length()-1,str.length());
                    po.put(str,0);
                }
                else{
                    ppp=false; break;
                }
                
            } if(nstr.equals(str.substring(0,1))){
                    nstr=str.substring(str.length()-1,str.length());
                    po.put(str,0);
                }
                else{
                    ppp=false; break;
                } nstr.equals(str.substring(0,1)) nstr.equals nstr str.substring(0,1) str.substring str 0 1 {
                    nstr=str.substring(str.length()-1,str.length());
                    po.put(str,0);
                } nstr=str.substring(str.length()-1,str.length()) nstr str.substring(str.length()-1,str.length()) str.substring str str.length()-1 str.length() str.length str 1 str.length() str.length str po.put(str,0) po.put po str 0 {
                    ppp=false; break;
                } ppp=false ppp false break; System.out.println((ppp)?"Yes":"No") System.out.println System.out System System.out (ppp)?"Yes":"No" (ppp) "Yes" "No" String[] args args public class Main {
    public static void main(String[] args) throws Exception {
        Map<String,Integer>po=new HashMap<String,Integer>();
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        boolean ppp=true;
        sc.nextLine();
        String g=sc.nextLine();
        po.put(g,0);
      String nstr=g.substring(g.length()-1,g.length());
        for(int i=0;i<n-1;i++){
        	String str=sc.nextLine();
            if(po.containsKey(str)){
                ppp=false;
                break;
            }
            else {
                if(nstr.equals(str.substring(0,1))){
                    nstr=str.substring(str.length()-1,str.length());
                    po.put(str,0);
                }
                else{
                    ppp=false; break;
                }
                
            }
        }
      System.out.println((ppp)?"Yes":"No");
    }
} public class Main {
    public static void main(String[] args) throws Exception {
        Map<String,Integer>po=new HashMap<String,Integer>();
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        boolean ppp=true;
        sc.nextLine();
        String g=sc.nextLine();
        po.put(g,0);
      String nstr=g.substring(g.length()-1,g.length());
        for(int i=0;i<n-1;i++){
        	String str=sc.nextLine();
            if(po.containsKey(str)){
                ppp=false;
                break;
            }
            else {
                if(nstr.equals(str.substring(0,1))){
                    nstr=str.substring(str.length()-1,str.length());
                    po.put(str,0);
                }
                else{
                    ppp=false; break;
                }
                
            }
        }
      System.out.println((ppp)?"Yes":"No");
    }
} Main
import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        Map<String,Integer>po=new HashMap<String,Integer>();
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        boolean ppp=true;
        sc.nextLine();
        String g=sc.nextLine();
        po.put(g,0);
      String nstr=g.substring(g.length()-1,g.length());
        for(int i=0;i<n-1;i++){
        	String str=sc.nextLine();
            if(po.containsKey(str)){
                ppp=false;
                break;
            }
            else {
                if(nstr.equals(str.substring(0,1))){
                    nstr=str.substring(str.length()-1,str.length());
                    po.put(str,0);
                }
                else{
                    ppp=false; break;
                }
                
            }
        }
      System.out.println((ppp)?"Yes":"No");
    }
}
