#include <iostream>
#include <string>
#include <bits/stdc++.h>
using namespace std;

int n, ans;
const int N = 1e5 + 20;
string s[N][10];
string p[N][10];
int vis[N];
string rec[10][2];
void dfs(int cnt) {
	if (cnt == 5) {
		int tmpl = 0, tmpr = 0, tmplr = 0;
		for (int i = 1; i <= n; i++) {
			if (vis[i]) continue ;
			if (rec[1][1] == p[i][1] && rec[2][2] == p[i][2] && rec[1][2] == p[i][1] && rec[3][2] == p[i][2]) tmplr++;
			if (rec[1][1] == p[i][1] && rec[2][2] == p[i][2]) tmpl++;
			if (rec[1][2] == p[i][1] && rec[3][2] == p[i][2]) tmpr++;
		}
		if (tmplr == 0) {
			ans += tmpl * tmpr;
			return ;
		}
		ans += tmpl * (tmpr - tmplr) + (tmpl - tmplr) * tmpr;
		return ;
	}
	if (cnt == 4) {
		for (int i = 1; i <= n; i++) {
			if (vis[i] || p[i][1] != rec[3][2] || p[i][2] != rec[1][1]) continue ;
			vis[i] = 1;
			rec[4][1] = p[i][1], rec[4][2] = p[i][2];
			dfs(5);
			vis[i] = 0;
		}
		return ;
	}
	for (int i = 1; i <= n; i++) {
		if (vis[i] || p[i][1] != rec[cnt - 1][2]) continue ;
		vis[i] = 1;
		rec[cnt][1] = p[i][1], rec[cnt][2] = p[i][2];
		dfs(cnt + 1);
		vis[i] = 0;
	}
	return ;
}
int main() {
	cin >> n;
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= 4; j++)
			cin >> s[i][j];
	for (int i = 1; i <= n; i++)
		p[i][1] = s[i][1], p[i][2] = s[i][4];
	for (int i = 1; i <= n; i++) {
		vis[i] = 1, rec[1][1] = p[i][1], rec[1][2] = p[i][2], dfs(2);
		vis[i] = 0;
	}
	cout << ans;
	return 0;
}