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

int n, ans;
map<string, int> h, t;
map<pair<string, string>, int> ht;
map<string, vector<string> > htt;
map<pair<string, pair<string, pair<string, string> > >, int> used;
string str[5];

int main()
{
	scanf("%d", &n);
	for (int i = 1; i <= n; ++i)
	{
		for (int i = 0; i < 4; ++i)
			cin >> str[i];
		++h[str[0]], ++t[str[3]];
		++ht[make_pair(str[0], str[3])];
		htt[str[0]].push_back(str[3]);
	}
	for (auto it : h)
	{
		string sah = it.first;
		int cah = it.second, cat = t[sah];
		if (cah < 2 || cat < 1)
			continue;
		if (htt[sah].size() == 0)
			continue;
		for (string sbh : htt[sah])
		{
			if (h[sbh] < 2 || t[sbh] < 1)
				break;
			if (htt[sbh].size() == 0)
				break;
			bool fl = 1;
			for (string sch : htt[sbh])
			{
				if (h[sch] < 1 || t[sch] < 2)
				{
					fl = 0;
					break;
				}
				if (ht[make_pair(sah, sch)] == 0)
				{
					fl = 0;
					break;
				}
				if (htt[sch].size() == 0)
				{
					fl = 0;
					break;
				}
				for (string sdh : htt[sch])
				{
					if (h[sdh] < 1 || t[sdh] < 2)
					{
						fl = 0;
						break;
					}
					if (ht[make_pair(sbh, sdh)] == 0)
					{
						fl = 0;
						break;
					}
					if (ht[make_pair(sdh, sah)] == 0)
					{
						fl = 0;
						break;
					}
					if (htt[sdh].size() == 0)
					{
						fl = 0;
						break;
					}
					if (used[make_pair(sah, make_pair(sbh, make_pair(sch, sdh)))] == 0)
					{
						int ca = ht[make_pair(sah, sbh)];
						int cb = ht[make_pair(sbh, sch)];
						int cc = ht[make_pair(sch, sdh)];
						int cd = ht[make_pair(sdh, sah)];
						int ce = ht[make_pair(sah, sch)];
						int cf = ht[make_pair(sbh, sdh)];
						ans += ca * cb * cc * cd * ce * cf;
						used[make_pair(sah, make_pair(sbh, make_pair(sch, sdh)))] = 1;
						fl = 0;
						break;
					}
				}
				if (!fl)
					break;
			}
			if (!fl)
				break;
		}
	}
	printf("%d\n", ans);
	return 0;
}