#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll ans = 0;
int n; 
struct Stu
{
	string t1, t2, t3, t4;
}s[100005];
string t[100005];
bool cmp(Stu a, Stu b)
{
	return a.t1 < b.t1;
}
int main()
{
	//freopen("idioms.txt", "r", stdin);
	cin >> n;
	for (int i = 1; i <= n; ++i) 
	{
		cin >> s[i].t1 >> s[i].t2 >> s[i].t3 >> s[i].t4;
		t[i] = s[i].t1;
	}
	sort(t + 1, t + n + 1);
	sort(s + 1, s + n + 1, cmp);
	for (int i = 1; i <= n; ++i)
	{
		for (int j = 1; j <= n; ++j)
		{
			if (i == j) continue;
			string A = s[i].t1, B = s[i].t4, C = s[j].t1, D = s[j].t4;
			int BD = 0, CA = 0, BC = 0, DA = 0;
			int p = lower_bound(t + 1, t + n + 1, B) - t;
			for (int k = p; k <= n; ++k)
			{
				if (s[k].t1 != B) break;
				if (s[k].t4 == D) BD++;
				if (s[k].t4 == C) BC++;
			}
			p = lower_bound(t + 1, t + n + 1, C) - t;
			for (int k = p; k <= n; ++k)
			{
				if (s[k].t1 != C) break;
				if (s[k].t4 == A) CA++;
			}
			p = lower_bound(t + 1, t + n + 1, D) - t;
			for (int k = p; k <= n; ++k)
			{
				if (s[k].t1 != D) break;
				if (s[k].t4 == A) DA++;
			}
//			if (A == "ren" && B == "hua" && C == "yu" && D == "xia")
//			{
//				cout << p << endl;
//				cout << BD << " " << CA << " " << BC << " " << DA << endl; 
//			}
			ans += BD * CA * BC * DA;
		}
	}
	cout << ans << endl;
	return 0;
}