#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 */