#include<bits/stdc++.h> using namespace std; int n,cnt,c[1000],s[10009][2],jie[1009][1009],sum[1009]; long long num; string ss; bool b[10009]; map<string,int> mp; void dfs(int f1,int f2,int f3,int f4,int shu){ if(shu==6){ num++; return ; } if(shu==4){ for(int i=1;i<=sum[f1];i++){ if(b[jie[f1][i]]) continue; if(s[jie[f1][i]][1]==f3){ b[jie[f1][i]]=1; dfs(f1,f2,f3,f4,shu+1); b[jie[f1][i]]=0; } } } else if(shu==5){ for(int i=1;i<=sum[f2];i++){ if(b[jie[f2][i]]) continue; if(s[jie[f2][i]][1]==f4){ b[jie[f2][i]]=1; dfs(f1,f2,f3,f4,shu+1); b[jie[f2][i]]=0; } } } else if(shu==3){ for(int i=1;i<=sum[f4];i++){ if(b[jie[f4][i]]) continue; if(s[jie[f4][i]][1]==f1){ b[jie[f4][i]]=1; dfs(f1,f2,f3,f4,shu+1); b[jie[f4][i]]=0; } } } else if(shu==2){ for(int i=1;i<=sum[f3];i++){ if(b[jie[f3][i]]) continue; b[jie[f3][i]]=1; dfs(f1,f2,f3,s[jie[f3][i]][1],shu+1); b[jie[f3][i]]=0; } } else if(shu==1){ for(int i=1;i<=sum[f2];i++){ b[jie[f2][i]]=1; dfs(f1,f2,s[jie[f2][i]][1],f4,shu+1); b[jie[f2][i]]=0; } } else{ for(int i=1;i<=n;i++){ b[i]=1; dfs(s[i][0],s[i][1],f3,f4,shu+1); b[i]=0; } } } int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>ss; if(!mp[ss]) mp[ss]=++cnt; s[i][0]=mp[ss]; cin>>ss>>ss>>ss; if(!mp[ss]) mp[ss]=++cnt; s[i][1]=mp[ss]; sum[s[i][0]]++; jie[s[i][0]][sum[s[i][0]]]=i; } dfs(0,0,0,0,0); cout<<num; return 0; }