import sys
import numpy as np

Q = []

def check(i, j):
    for k in range(min(len(Q[i]), len(Q[j]))):
        if Q[i][len(Q[i])-1-k] != Q[j][len(Q[j])-1-k]:
            return False
    return True

def k(a):
    return np.dot(a, a) % 1000000007

def mpow(a, b):
    if b == 1:
        return a % 1000000007
    elif b == 0:
        return np.identity(100)
    else:
        if b & 1:
            return np.dot(a, k(mpow(a, b // 2))) % 1000000007
        else:
            return k(mpow(a, b // 2)) % 1000000007

def main():
    [n, q] = map(int, sys.stdin.readline().strip().split(' '))
    Qs = []
    for i in range(q):
        [_, qq] = sys.stdin.readline().strip().split()
        ok = True
        for i in range(len(Q)):
            if Q[i] == qq:
                ok = False
        if ok:
            Q.append(qq)
    q = len(Q)
    bad = np.zeros(q)
    for i in range(q):
        for j in range(i+1, q):
            if check(i, j):
                if len(Q[i]) > len(Q[j]):
                    bad[i] = 1
                else:
                    bad[j] = 1
    for i in range(q):
        if not bad[i]:
            Qs.append(Q[i])

    # print(Qs)
    a = np.zeros((100, 100), dtype=int)
    a[0, 0] = 26

    prefs = []
    ptoi = {"": 0}
    idx = 1
    for bad_w in Qs:
        if len(bad_w) == 1:
            a[0, 0] = a[0, 0] - 1
        else:
            for i in range(len(bad_w)-1, 0, -1):
                if bad_w[:i] not in prefs:
                    prefs.append(bad_w[:i])
                    ptoi[bad_w[:i]] = idx
                    idx += 1

            a[0, ptoi[bad_w[:-1]]] = a[0, ptoi[bad_w[:-1]]] - 1
    
    for pref in prefs:
        a[ptoi[pref], ptoi[pref[:-1]]] = 1
    
    for pref in prefs:
        for bad_w in Qs:
            if bad_w.endswith(pref):
                a[ptoi[pref], ptoi[bad_w[:-1]]] = a[ptoi[pref], ptoi[bad_w[:-1]]]-1

    # print(a[:10, :10])


    # print(Qs)
    # a = np.diag(np.ones(99), -1).astype(int)
    # a[0, 0] = 3
    # for i in range(len(Qs)):
    #     a[0, len(Qs[i])-1] = a[0, len(Qs[i]) - 1] - 1
    a = mpow(a, n)
    
    # print(a[:5, :5])
    sys.stdout.write(str(a[0, 0]) + "\n")



if __name__ == "__main__":
    main()
