#include <iostream>
#include<bits/stdc++.h>

using namespace std;

int d,l[20],a[150][150],mg[30];
char s[20];

void probaj(int poz,int n)
{
    int i,u,ddd,h,j,fff,j1;
    if(poz==19)
    {
         ddd=0;  fff=0;
        for(i=1;i<=n;i++)
        {
            u=0;

            for(int j=1;j<=18;j++)
            {
                j1=j;
                for(h=1,j1=j;h<=l[i];h++,j1++)
                {
                    if(a[i][h]!=mg[j1]) break;
                }

                if(h==l[i]+1) u++;
            }


            if(u>1 || u==0) fff=-1;
        }

        if(fff==0 && ddd<d)
        { d=ddd;   for(i=1;i<=ddd;i++) s[i]=mg[i];}

    }
    else
    {
       mg[poz]=0;  probaj(poz+1,n);
       mg[poz]=1; probaj(poz+1,n);
    }
}


int Resi(int N, int K, int* L, char** A, char* S)
{
     int r=0,i,j,n=N;

     for(i=1;i<=n;i++) l[i]=L[i];

     for(i=1;i<=n;i++)
     {
         for(j=1;j<=L[i];j++)
         {
             a[i][j]=A[i][j]-'a';
             if(a[i][j]>1) r=-1;
         }
     }

     d=200;
     probaj(1,n);


    if(r==-1) return r;
    if(d==200) return -1;

    for(i=1;i<=d;i++) S[i]=s[i]+'a';

    return d;
}