#include <stdio.h>
#define A 26
#define M 531441 /* M = (A + 1)^4 */
int idx(int a, int b, int c, int d) {
return ((a * (A + 1) + b) * (A + 1) + c) * (A + 1) + d;
}
int main() {
static int kk[M];
int n, a, b, c, d, e, f, g, h, u, w;
long long ans;
scanf("%d", &n);
while (n--) {
static char s[4], t[4];
int u;
scanf("%s%s", s, t);
a = s[0] - 'A' + 1, b = s[1] - 'A' + 1;
c = t[0] - 'A' + 1, d = t[1] - 'A' + 1;
for (u = 0; u < 16; u++)
kk[idx((u & 1) != 0 ? a : 0, (u & 2) != 0 ? b : 0, (u & 4) != 0 ? c : 0, (u & 8) != 0 ? d : 0)]++;
}
ans = 0;
for (a = 1; a <= A; a++)
for (b = 1; b <= A; b++)
for (c = 1; c <= A; c++)
for (d = 1; d <= A; d++)
if (kk[idx(a, b, c, d)] > 0) {
for (u = 1; u < 16; u++) {
e = 0, f = 0;
g = 0, h = 0;
w = -1;
if ((u & 1) != 0) {
if (e == 0 || e == c)
e = c;
else
continue;
if (f == 0 || f == d)
f = d;
else
continue;
w = -w;
}
if ((u & 2) != 0) {
if (g == 0 || g == a)
g = a;
else
continue;
if (h == 0 || h == b)
h = b;
else
continue;
w = -w;
}
if ((u & 4) != 0) {
if (e == 0 || e == b)
e = b;
else
continue;
if (g == 0 || g == d)
g = d;
else
continue;
w = -w;
}
if ((u & 8) != 0) {
if (f == 0 || f == a)
f = a;
else
continue;
if (h == 0 || h == c)
h = c;
else
continue;
w = -w;
}
ans += kk[idx(e, f, g, h)] * w;
}
if (a == c && b == d || a == b && c == d)
ans--;
}
ans /= 2;
printf("%lld\n", ans);
return 0;
}