#include <stdio.h>
#include <string.h>

int N;
static int matrica[30][30];
char str[100][11];
static int slova[30];
int koliko[30];
int brojSlova;
char parZ[30];
char parB[30];


void VeciKodPoretka ( char prvi[], char drugi[] )
{
    int i = 0;
      
    if ( prvi[i] != drugi[i] )  { 
         matrica[prvi[i] - 'a'][drugi[i] - 'a'] = 1;
       }
    return;
     
}


void VeciKodJednakih ( char prvi[], char drugi[] )
{
    int i = 0, t = 0;
    
    if ( prvi[i] == drugi[i] )
    {
         while ( prvi[i] == drugi[i] && i < strlen(prvi) && i < strlen(drugi) )
         {
               ++i;
               if ( prvi[i] != drugi[i] )
                  t = 1;
         }
    }
    
    
    if ( t ) 
    matrica[prvi[i] - 'a'][drugi[i] - 'a'] = 1;
    
    return;
}

int Koliko ( int stupac )
{
    int S = 0;
    
    for  ( int i = 0; i < 30; ++i )
         if ( matrica[stupac][i] > 0 )
              S++;
    
    return S;
}

void gledajSlova ( char str[] )
{
     int i = 0;
     
     for ( ; i < strlen(str); ++i )
         slova[str[i] - 'a'] = 1;
}

char Najmanje ( )
{
     int i = 0;
     
     for ( i = 0; i < 30; ++i )
           if ( slova[i] == 1 ) 
              if ( Koliko(i) == 0 )
                 return i + 'a';
              
}


   
void Povecaj ( int slovo, int br )
{
     int i = 0;
     
     for ( i = 0; i < 30; ++i )  
         if ( slova[i] && ((i +'a') != slovo) )
             matrica[i][slovo - 'a']++; 
   
} 
              


main()
{
      
      int i = 0;
      int j = 0;
      
      scanf ( "%d", &N );
      
      for ( i = 0; i < N; ++i )
          scanf ( "%s", str[i] );
          
      for ( i = 0; i < N; ++i )    
          gledajSlova( str[i] );    
      
      for ( i = 0; i < 30; ++i )
          if ( slova[i] )
             ++brojSlova;
      
      for (  i = 0; i < N - 1; ++i )
          for (  j = i + 1; j < N; ++j ){
              
              if ( str[i][0] != str[j][0] && i != j)
              VeciKodPoretka( str[i], str[j] );
              
          }
      
      for (  i = 0; i < N - 1; ++i )
          for (  j = i + 1; j < N; ++j ){
              
              if ( str[i][0] == str[j][0] && i != j )
              VeciKodJednakih( str[i], str[j] );
          }
       
       
     Povecaj ( Najmanje(), 0 );
     
     
     for ( i = 0; i < 30; ++i )
         if ( slova[i] )
         {
         parB[i] = Koliko(i);
         parZ[i] = i + 'a';
         
         
         }
  
      
      for ( i = 0; i < 30 - 1; ++i )
          for ( j = i + 1; j < 30; ++j ) 
              if ( parB[i] < parB[j])
                 {
                             char t;
                             int t2;
                             
                             t2 = parB[i];
                             t = parZ[i];
                             
                             parB[i] = parB[j];
                             parZ[i] = parZ[j];
                             
                             parB[j] = t2;
                             parZ[j] = t;
                                 
                             
                 }
      
      for ( i = 0; i < 30; ++i )
      if ( parZ[i] )
          printf ( "%c",parZ[i] ); 
     
}
