吊坠
import os
import sys
from collections import defaultdict
# 请在此输入您的代码
n,m=map(int,input().split())
l=[]
cnt=0
for i in range(n):
a=input()
a=a+a
d=defaultdict(lambda:set())
for j in range(1,m+1):
for s in range(0,m):
d[j].add(a[s:s+j])
l.append(d)
que=[]
for i in range(n):
for j in range(i+1,n):
for k in range(m,0,-1):
if l[i][k]&l[j][k]:
que.append((k,i,j))
break
que.sort(key=lambda x:x[0],reverse=True)
f=[i for i in range(n)]
def find(x):
if f[x]!=x:
f[x]=find(f[x])
return f[x]
cnt=0;res=0
for i in que:
w=i[0];fa=find(i[1]);fb=find(i[2])
if fa!=fb:
f[fa]=fb
cnt+=1
res+=w
if cnt==n-1:
break
print(res)