#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; }