import fileinput
def D(a):print(a)
def S(s,I):return int(s.split(" ")[I])
def mul(A,B,W,M):
    R=[0]*W
    for i in range(W):R[i]=[0]*W
    for i in range(W):
        for j in range(W):
            for k in range(W):
                R[i][j]+=A[i][k]*B[k][j]
                R[i][j]%=M
    return R
def pw(M,W,k,MD):
    E=[0]*W
    H=[0]*W
    R=[0]*W
    for i in range(W):
        E[i]=[0]*W
        H[i]=[0]*W
        R[i]=[0]*W
        R[i][i]=1
        E[i][i]=1
    while(k>0):
        if(k%2==1):R=mul(R,M,W,MD)
        M=mul(M,M,W,MD)
        k>>=1
    return R
def main():
    MOD=1000000007
    z=0
    N=0
    E=1
    g=[0]*111
    f=[0]*111
    O=[0]*111
    q=[0]*111
    M=[0]*111
    for i in range(111):
        g[i]=[0]*26
        M[i]=[0]*111
    for l in fileinput.input():
        z+=1
        if(z<2):
            N=S(l,0)
            continue
        l=l.split(" ")
        L=int(l[0])
        s=l[1][:-1]
        u=0
        for i in range(L):
            c=ord(s[i])-97
            if(g[u][c]==0):
                g[u][c]=E
                E+=1
            u=g[u][c]
        O[u]=1
    x=0
    r=0
    b=0
    e=0
    u=0
    for i in range(26):
        if(g[0][i]!=0):
            f[g[0][i]]=0
            q[e]=g[0][i]
            e+=1
    while(b<e):
        for i in range(26):
            u=q[b]
            x=g[u][i]
            r=g[f[u]][i]
            if(x==0):g[u][i]=r
            else:
                q[e]=x
                e+=1
                f[x]=r
                O[x]|=O[r]
        b+=1;
    for i in range(E):
        for j in range(26):
            if(O[g[i][j]]==1):M[i][E]+=1
            else: M[i][g[i][j]]+=1
    M[E][E]=26
    R=pw(M,E+1,N,MOD)
    D((MOD+pow(26,N,MOD)-R[0][E])%MOD)
main()
