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