#include<bits/stdc++.h>
using namespace std;
long long n,ans,v[10005];
struct sss
{
	string h,t,w;
}a[10005];
void sss2(int dep,string he,string ta1,string ta2,string ta3)
{
	if(dep==4)
	{
		ans++;
		return ;
	}
	if(dep==1)
	{
		for(int i=1;i<=n;i++)
		{
			if(!v[i]&&a[i].h==he)
			{
				v[i]=1;
				sss2(dep+1,he,ta1,ta2,a[i].t);	
				v[i]=0;
			}	
		}
	}
	if(dep==2)
	{
		for(int i=1;i<=n;i++)
		{
			if(!v[i]&&a[i].h==ta3&&a[i].t==ta2)
			{
				v[i]=1;
				sss2(dep+1,he,ta1,ta2,ta3);
				v[i]=0;
			}
		}
	}
	else
	{
		for(int i=1;i<=n;i++)
		{
			if(!v[i]&&a[i].h==ta3&&a[i].t==ta1)
			{
				v[i]=1;
				sss2(dep+1,he,ta1,ta2,ta3);
				v[i]=0;
			}
		}
	}
}
void sss1(int dep,string he,string ta1,string ta2)
{
	if(dep==4)
	{
		sss2(1,he,ta1,ta2,"");
		return ;
	}
	if(dep==1)
	{
		for(int i=1;i<=n;i++)
		{
			v[i]=1;
			sss1(dep+1,a[i].t,a[i].h,"");
			v[i]=0;
		}
	}
	if(dep==2)
	{
		for(int i=1;i<=n;i++)
		{
			if(!v[i]&&a[i].t==ta1)
			{
				v[i]=1;
				sss1(dep+1,he,ta1,a[i].h);
				v[i]=0;
			}
		}
	}
	else
	{
		for(int i=1;i<=n;i++)
		{
			if(!v[i]&&a[i].h==he&&a[i].t==ta2)
			{
				v[i]=1;
				sss1(dep+1,he,ta1,ta2);
				v[i]=0;
			}
		}
	}
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i].h>>a[i].w>>a[i].w>>a[i].t;
	sss1(1,"","","");
	cout<<ans;	
	return 0;	
}