#include<stdio.h>
char Q[256];
char x[2][500][52];
int ck[4096];
int main() {
int n, m;
int r, i, j, k;
scanf("%d%d", &n, &m);
Q['A'] = 1, Q['C'] = 2, Q['T'] = 4, Q['G'] = 8;
for (r = 0; r < 2; r++)for (i = 0; i < n; i++)for (j = 0; j < m; j++) {
scanf(" %c", &x[r][i][j]);
}
int ans = 0;
for (i = 0; i < m; i++)for (j = i + 1; j < m; j++)for (k = j + 1; k < m; k++) {
for (r = 0; r < 2; r++) {
for (int q = 0; q < n; q++) {
ck[Q[x[r][q][i]] * (1 << 8) + Q[x[r][q][j]] * (1 << 4) + Q[x[r][q][k]]] |= (1 << r);
}
}
bool flag = 0;
for (r = 0; r < 2; r++) {
for (int q = 0; q < n; q++) {
flag |= ck[Q[x[r][q][i]] * (1 << 8) + Q[x[r][q][j]] * (1 << 4) + Q[x[r][q][k]]] == 3;
ck[Q[x[r][q][i]] * (1 << 8) + Q[x[r][q][j]] * (1 << 4) + Q[x[r][q][k]]] = 0;
}
}
ans += !flag;
}
printf("%d", ans);
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KY2hhciBRWzI1Nl07CmNoYXIgeFsyXVs1MDBdWzUyXTsKaW50IGNrWzQwOTZdOwppbnQgbWFpbigpIHsKCWludCBuLCBtOwoJaW50IHIsIGksIGosIGs7CglzY2FuZigiJWQlZCIsICZuLCAmbSk7CglRWydBJ10gPSAxLCBRWydDJ10gPSAyLCBRWydUJ10gPSA0LCBRWydHJ10gPSA4OwoJZm9yIChyID0gMDsgciA8IDI7IHIrKylmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKWZvciAoaiA9IDA7IGogPCBtOyBqKyspIHsKCQlzY2FuZigiICVjIiwgJnhbcl1baV1bal0pOwoJfQoJaW50IGFucyA9IDA7Cglmb3IgKGkgPSAwOyBpIDwgbTsgaSsrKWZvciAoaiA9IGkgKyAxOyBqIDwgbTsgaisrKWZvciAoayA9IGogKyAxOyBrIDwgbTsgaysrKSB7CgkJZm9yIChyID0gMDsgciA8IDI7IHIrKykgewoJCQlmb3IgKGludCBxID0gMDsgcSA8IG47IHErKykgewoJCQkJY2tbUVt4W3JdW3FdW2ldXSAqICgxIDw8IDgpICsgUVt4W3JdW3FdW2pdXSAqICgxIDw8IDQpICsgUVt4W3JdW3FdW2tdXV0gfD0gKDEgPDwgcik7CgkJCX0KCQl9CgkJYm9vbCBmbGFnID0gMDsKCQlmb3IgKHIgPSAwOyByIDwgMjsgcisrKSB7CgkJCWZvciAoaW50IHEgPSAwOyBxIDwgbjsgcSsrKSB7CgkJCQlmbGFnIHw9IGNrW1FbeFtyXVtxXVtpXV0gKiAoMSA8PCA4KSArIFFbeFtyXVtxXVtqXV0gKiAoMSA8PCA0KSArIFFbeFtyXVtxXVtrXV1dID09IDM7CgkJCQlja1tRW3hbcl1bcV1baV1dICogKDEgPDwgOCkgKyBRW3hbcl1bcV1bal1dICogKDEgPDwgNCkgKyBRW3hbcl1bcV1ba11dXSA9IDA7CgkJCX0KCQl9CgkJYW5zICs9ICFmbGFnOwoJfQoJcHJpbnRmKCIlZCIsIGFucyk7CglyZXR1cm4gMDsKfQo=