program casino;
const lung=1000000;
var N,M,i,z,coppie:qword;
A,B: AnsiString;
isRot,uscita :boolean;
S:array[0..lung] of AnsiString;
procedure isRotation (var x: AnsiString; var y: AnsiString);
var h,k,len:qword;
reset :boolean;
begin
h:=0; k:=0; len:=0;
reset:=false; uscita:=false;
while uscita=false do
begin
if (h=2*M-1) and (len<>M) then begin uscita:=true; isRot:=false;end
else
begin
if len=M then begin isRot:=true; uscita:=true; end
else
begin
if x[h mod M+1]=y[k mod M+1] then
begin
if reset =true then reset:=false;
h:=h+1;
k:=k+1;
len:=len+1;
end
else begin if reset=true then begin reset:=false; h:=h+1; end
else
begin
reset:=true;
k:=0;
len:=0;
end;
end;
end;
end;
end;
end;
begin
readln (N,M);
for i:=0 to N-1 do readln(S[i]);
coppie:=0;
i:=0;
while i<N-1 do
begin
A:=S[i];
z:=i+1;
while z<N do
begin
B:=S[z];
isRot:=false;
isRotation(A,B);
if isRot=true then coppie:=coppie+1;
z:=z+1;
end;
i:=i+1;
end;
writeln (coppie);
end.
cHJvZ3JhbSBjYXNpbm87CmNvbnN0IGx1bmc9MTAwMDAwMDsKdmFyICBOLE0saSx6LGNvcHBpZTpxd29yZDsKICAgICBBLEI6IEFuc2lTdHJpbmc7CiAgICAgaXNSb3QsdXNjaXRhIDpib29sZWFuOwogICAgIFM6YXJyYXlbMC4ubHVuZ10gb2YgQW5zaVN0cmluZzsKICAgICAKcHJvY2VkdXJlIGlzUm90YXRpb24gKHZhciB4OiBBbnNpU3RyaW5nOyB2YXIgeTogQW5zaVN0cmluZyk7CnZhciBoLGssbGVuOnF3b3JkOwogICAgcmVzZXQgOmJvb2xlYW47CmJlZ2luCiAgIGg6PTA7IGs6PTA7IGxlbjo9MDsKICAgcmVzZXQ6PWZhbHNlOyAgdXNjaXRhOj1mYWxzZTsKICAgd2hpbGUgdXNjaXRhPWZhbHNlIGRvCiAgICAgICAgYmVnaW4KICAgICAgICAgIGlmIChoPTIqTS0xKSBhbmQgKGxlbjw+TSkgdGhlbiBiZWdpbiB1c2NpdGE6PXRydWU7IGlzUm90Oj1mYWxzZTtlbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBsZW49TSB0aGVuIGJlZ2luIGlzUm90Oj10cnVlOyB1c2NpdGE6PXRydWU7IGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB4W2ggbW9kIE0rMV09eVtrIG1vZCBNKzFdIHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiByZXNldCA9dHJ1ZSB0aGVuIHJlc2V0Oj1mYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGg6PWgrMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGs6PWsrMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbjo9bGVuKzE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGJlZ2luIGlmIHJlc2V0PXRydWUgdGhlbiBiZWdpbiByZXNldDo9ZmFsc2U7IGg6PWgrMTsgZW5kICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldDo9dHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrOj0wOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbjo9MDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDsgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kOyAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ7ICAgICAgICAgICAgCiAgICAgICAgZW5kOyAgICAgICAgICAgIAplbmQ7CgoKYmVnaW4KICAKICAgcmVhZGxuIChOLE0pOwogICBmb3IgaTo9MCB0byBOLTEgZG8gcmVhZGxuKFNbaV0pOwogICBjb3BwaWU6PTA7CiAgIGk6PTA7CiAgIHdoaWxlIGk8Ti0xIGRvIAogICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgQTo9U1tpXTsKICAgICAgICAgICAgICAgIHo6PWkrMTsKICAgICAgICAgICAgICAgIHdoaWxlIHo8TiBkbyAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCOj1TW3pdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNSb3Q6PWZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNSb3RhdGlvbihBLEIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaXNSb3Q9dHJ1ZSB0aGVuIGNvcHBpZTo9Y29wcGllKzE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6Oj16KzE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kOyAKICAgICAgICAgICAgICAgaTo9aSsxOyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgZW5kOyAKICAgIHdyaXRlbG4gKGNvcHBpZSk7CmVuZC4K