#include<bits/stdc++.h>
#define int long long
using namespace std;
struct node{
	string fr,hi;
}a[100005];
map<string,vector<int> >mpfr;
map<pair<string,string>,vector<int> >mpp;
vector<int>g;
int ans;
int n;
string str[10005][5];
void dfs(int dep,string h,string t){
    if(dep==4){
    	if(h==t){
    		int a=mpp[{str[g[0]][1],str[g[2]][1]}].size();
    		int b=mpp[{str[g[0]][4],str[g[2]][4]}].size();
    		if(a&&b){
    			for(auto x:mpp[{str[g[0]][4],str[g[2]][4]}]){
    				for(auto y:mpp[{str[g[0]][1],str[g[2]][1]}]){
    					if(x!=y) ans++;
					}
				}
			}
		}
	}	
	else{
		for(auto x:mpfr[h]){
			g.push_back(x);
			dfs(dep+1,a[x].hi,t);
			g.erase(g.begin());
		}
	}
}
signed main(){
	//freopen("idioms.txt","r",stdin);
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin>>n;
    for(int i=1;i<=n;i++){
    	for(int j=1;j<=4;j++){
    		cin>>str[i][j];
    		if(j==1) a[i].fr=str[i][1];
    		if(j==4) a[i].hi=str[i][4];
		}
		mpfr[a[i].fr].push_back(i);
		mpp[{a[i].fr,a[i].hi}].push_back(i); 
	}
	for(int i=1;i<=n;i++){
		g.push_back(i);
		dfs(1,a[i].hi,a[i].fr);
		g.erase(g.begin());
	}
	cout<<ans;
	return 0;
}
/*
10 
hua xiang niao yu
yu miao tian xia 
xia li ba ren
ren mian tao hua 
hua qian yue xia 
yu chu jing ren 
ji xiang ru yi 
xin xiang shi cheng 
cong ming ling li 
jian kang cheng zhang
*/