#include<cstdio>
#include<iostream>
#include<cstring>
#include<map>
#include<string>
#include<algorithm>
#include<vector>
#define ll long long
#define ff first
using namespace std;
int n,e,k;
string ss[20];
bool check(string s){
///cout<<"check "<<s<<" "<<n<<endl;

    for(int i=1;i<=n;i++){

        int cnt=0;
        for(int j=ss[i].size()-1;j<s.size();j++){
            cnt+=(s.substr(j-ss[i].size()+1,ss[i].size())==ss[i]);
            if(cnt>1)return false;
        }
        if(cnt==0)return false;

    }
    return true;

}

int Resi(int N, int K, int* L, char** A, char* S) {

    n=N;
    k=K;

    for(int i=1;i<=n;i++){
        for(int j=1;j<=L[i];j++)
            ss[i]+=A[i][j];
    }

    e=-1;
    int minn=1e9;

    if(n==2){

        for(int i=0;i<=ss[1].size();i++){
            string pom=ss[1];
            for(int j=i;j<i+ss[2].size();j++){
                if(j==pom.size()){
                    pom+=ss[2][j-i];
                }
                else pom[j]=ss[2][j-i];
            }

            if(check(pom)){
                if(minn>pom.size()){
                    minn=pom.size();
                    for(int p=1;p<=pom.size();p++)S[p]=pom[p-1];
                }
            }

           /// cout<<pom<<" "<<check(pom)<<endl;
        }


        for(int i=0;i<=ss[2].size();i++){
            string pom=ss[2];
            for(int j=i;j<i+ss[1].size();j++){
                if(j==pom.size()){
                    pom+=ss[1][j-i];
                }
                else pom[j]=ss[1][j-i];
            }

            if(check(pom)){
                if(minn>pom.size()){
                    minn=pom.size();
                    for(int p=1;p<=pom.size();p++)S[p]=pom[p-1];
                }
            }

            ///cout<<pom<<" "<<check(pom)<<endl;
        }
        e=minn;

    }
    else{
        for(int i=1;i<=18;i++){
          ///printf("%d \n",i);
            for(int j=0;j<(1<<i);j++){

                string s;
                for(int p=0;p<i;p++)
                    if(j&(1<<p))s+='b';
                    else s+='a';

                if(check(s)){
                    e=i;
                    for(int p=1;p<=i;p++)S[p]=s[p-1];
                    break;
                }
            }
            if(e!=-1)break;
        }
    }

return e;
}