import sys 
sys.setrecursionlimit(10**7)
n,m=map(int,input().split())
g=[[0 for _ in range(9)] for _ in range(9)]
for _ in range(m):
    a,b=input().split()
    a=ord(a)-ord('A')
    b=ord(b)-ord('A')
    g[a][b]=1
    g[b][a]=1

from functools import lru_cache
@lru_cache(None)
def solve(mask,last):
    if mask==(1<<n)-1:
        return 0
    ret=100
    for i in range(n):
        if (mask>>i)&1:
            continue
        ret=min(ret,solve(mask|(1<<i),i)+ (1 if g[last][i] else 0)) 
    return ret 
ans=0
for i in range(n):
    ans=max(ans,n-1-solve(1<<i,i))
print(ans)
