#include<bits/stdc++.h> #define int long long using namespace std; const int MAXN=1e5+5; int n; int cnt; string a[MAXN],b[MAXN]; map<string,int> mp; map<int,vector<int> > vis[MAXN]; vector<int> vec[MAXN]; int calc(int x){ int ret=0; int now=mp[b[x]]; for(int i=0;i<vec[now].size();i++){ for(int j=0;j<vec[now].size();j++){ if(i==j){ continue; } int l=vec[now][i],r=vec[now][j]; l=mp[b[l]],r=mp[b[r]]; if(vec[now][i]==vec[now][j]){ continue; } for(int k=0;k<vis[r][l].size();k++){ int e=vis[r][l][k]; if(e==vec[now][i]||e==vec[now][j]){ continue; } for(int p=0;p<vis[l][mp[a[x]]].size();p++){ int f=vis[l][mp[a[x]]][p]; if(f==vec[now][i]||f==vec[now][j]||f==e){ continue; } for(int q=0;q<vis[mp[a[x]]][r].size();q++){ int g=vis[mp[a[x]]][r][q]; if(g==vec[now][i]||g==vec[now][j]||g==e||g==f){ continue; } // cout<<vec[now][i]<<" "<<vec[now][j]<<" "<<e<<" "<<f<<" "<<g<<"\n"; ret++; } } } } } return ret; } signed main(){ // freopen("idioms.txt","r",stdin); cin>>n; for(int i=1;i<=n;i++){ string o,p,q,r; cin>>o>>p>>q>>r; a[i]=o; b[i]=r; if(!mp[o]){ mp[o]=++cnt; } if(!mp[r]){ mp[r]=++cnt; } vec[mp[o]].push_back(i); vis[mp[o]][mp[r]].push_back(i); } int ans=0; for(int i=1;i<=n;i++){ ans+=calc(i); } cout<<ans; return 0; }