#include<stdio.h>
#include<algorithm>
#include<string>

using namespace std;
string a[5000];
int dp[5000][50];
int dpw[5000][50];
int n,i;
bool dpb[5000][50];
bool starts(string a,string b)
{
     //bool q=true;
     for(int i=0;i<a.length();i++) if(a[i]!=b[i]) return false;     
     return true;
}
bool poc(string a,string b,int l)
{
     for(int i=0;i<l;i++) if(a[i]!=b[i]) return false;
     return true;     
}

int resi(int i,int l)
{
              
          if(dpb[i][l]) return dp[i][l];
          dpb[i][l]=true;
          if(i>0 && poc(a[i-1],a[i],l)) 
          {
                 dp[i][l]=resi(i-1,l);
                 dpw[i][l]=dpw[i-1][l];
                 return dp[i][l];       
          }
          int j=i;
          bool q=false;int s;int k=1,kw,sw;
          while(j<n && poc(a[i],a[j],l))
          {
                                int p=resi(j,l+1);
                                int pw=dpw[j][l+1];
                                if(p>0)
                                {
                                 if(q==false) 
                                 {
                                              s=p;   
                                              sw=pw;
                                              q=true;
                                 }
                                 if(p<s) 
                                 {
                                         s=p;
                                         sw=pw;
                                 }
                                 
                                }
                                else if(p<k) 
                                {
                                     kw=pw;
                                     k=p;
                                }
                                j++;
          }
          if(q) 
          {
                dp[i][l]=-(s+1);
                dpw[i][l]=sw;
                return -(s+1);
                
          }
          else 
          {
               dp[i][l]=-(k-1);
               dpw[i][l]=kw;
               return -(k-1);
          }
}


int main()
{
    FILE *f,*g;
    char c[50];
    f=fopen("igra.in","r");
    g=fopen("igra.out","w");
    //int i,n;
    fscanf(f,"%d",&n);
    
    for(i=0;i<n;i++) 
    {
                     
                     fscanf(f,"%s",&c);  
                     a[i]=c;
    }
    sort(a,a+n);
    /*for(i=0;i<n;i++) 
    {                
                     int j;
               for(j=0;j<a[i].length();j++) c[j]=a[i][j];
               printf("%s\n",c);                       
    }//printf("%s",a[i]);
    scanf("%d",&n);
    */
    int j;
    
    
    for(i=0;i<n;i++)
    {
                    for(j=0;j<a[i].length();j++) dpb[i][j]=false;
                    //printf("\n");                
    }
    
    for(i=0;i<n;i++)
    {
          j=i;
          while(j<n && starts(a[i],a[j]))
          {
                  dp[j][a[i].length()]=0;          
                  dpb[j][a[i].length()]=true;
                  dpw[j][a[i].length()]=i;
                  j++;
          }
    }
    j=resi(0,0);
   /* bool q=false;int s,k=1,sw=0,kw=0;
    for(i=0;i<n;i++)
    {
                    j=resi(i,1);
                    if(j>0)
                    {
                          if(q==false || j<s)
                          {
                           s=j;
                           sw=i;
                           q=true;            
                          }
                    }
                    else
                    {
                        if(j<k)
                        {
                               kw=i;
                               k=j;       
                        }    
                    }
                                    
    }
    
    
    
    
    if(q) 
    {
          fprintf(g,"1\n");
          i=dpw[sw][1];
    }
    else 
    {
         fprintf(g,"2\n");
         i=dpw[kw][1];
    }
    */
    
    if(j<=0) fprintf(g,"1\n");
    else fprintf(g,"2\n");
    
    i=dpw[0][0];
    //printf("%d",i);
    char r[50];
    for(j=0;j<a[i].length();j++)
    { 
                                //r[j]=a[i][j];
                                fprintf(g,"%c",a[i][j]);//
    }
    //fprintf(g,"%s",r);
    
    
    
   /* for(i=0;i<n;i++)
    {
                    for(j=0;j<=a[i].length();j++) printf("%d ",dp[i][j]);
                    printf("\n");                
    }
    scanf("%d",&n);
    */
    
    fclose(f);
    fclose(g);
    
          
}
