#include <bits/stdc++.h>
using namespace std;
int n,k;
string niz[20];
string tren;
bool naso = 0;
int subst(string a, string b){
    int m = a.length();
    int m2 = b.length();
    if(m2 > m)return 0;
    int tr = 0;
    int res = 0;
    for(int i=0; i<m; i++){
        tr = 0;
        for(int j=i; j<m; j++){
            if(a[j] == b[tr])tr++;
            else
                break;
            if(tr == m2){
                res++;
                break;
            }
        }
    }
    return res;
}
bool provera(){
    for(int i=0; i<n; i++){
        if(subst(tren,niz[i]) != 1)return 0;
    }
    return 1;
}
void radi(int ind){
    if(naso)return;
    if(provera()){
        naso = 1;
        return;
    }
    if(ind == 18)return;
    string pom = tren;
    tren += 'a';
    radi(ind+1);
    tren = pom;
    tren += 'b';
    radi(ind+1);

}
int Resi(int N, int K, int* L, char** A, char* S) {
    n = N;
    k = K;
    for(int i=1; i<=n; i++){
        string pom = "";
        for(int j=1; j<=L[i]; j++){
            pom += A[i][j];
        }
        niz[i - 1] = pom;
    }
    if(k == 2){
        for(int i=0; i<n; i++){
            for(int j=0; j<niz[i].length(); j++){
                if(niz[i][j] != 'a' && niz[i][j] != 'b')return -1;
            }
        }
        radi(0);
        if(naso){
            for(int i=0; i<tren.size(); i++){
                S[i+1] = tren[i];
            }
            return tren.size();
        }
        else
            return -1;
    }
	return 1;
}