#include<bits/stdc++.h>
using namespace std;
int ans=0,n;
string q[10001][3];
int s[10001]={0};
string e[10001][3];
void dfs(int k)
{
	int i;
	if(k==1)
	{
		for(i=1;i<=n;i++)
		if(s[i]==0)
		{
			s[i]=1;
			e[k][1]=q[i][1];
			e[k][2]=q[i][2];
		}
	}
	else if(k==2)
	{	
		for(i=1;i<=n;i++)
		if(s[i]==0 && q[i][1]==e[1][2])
		{
			s[i]=1;
			e[k][1]=q[i][1];
			e[k][2]=q[i][2];
		}
	}
	else if(k==3)
	{	
		for(i=1;i<=n;i++)
		if(s[i]==0 && q[i][1]==e[1][1] && q[i][2]==e[2][2])
		{
			s[i]=1;
			e[k][1]=q[i][1];
			e[k][2]=q[i][2];
		}
	}
	else if(k==4)
	{
		for(i=1;i<=n;i++)
		if(s[i]==0 && q[i][1]==e[2][2] && q[i][1]==e[3][2])
		{
			s[i]=1;
			e[k][1]=q[i][1];
			e[k][2]=q[i][2];
		}
	}
	else if(k==5)
	{
		for(i=1;i<=n;i++)
		if(s[i]==0 && q[i][1]==e[1][2] && q[i][1]==e[2][1] && q[i][2]==e[4][2])
		{
			s[i]=1;
			e[k][1]=q[i][1];
			e[k][2]=q[i][2];
		}
	}
	else if(k==6)
	{	
		for(i=1;i<=n;i++)
		if(s[i]==0 && q[i][1]==e[5][2] && q[i][1]==e[4][2] && q[i][2]==e[1][1])
		{
			s[i]=1;
			e[k][1]=q[i][1];
			e[k][2]=q[i][2];
		}
	}
	else if(k==7)
	{
		ans=ans+1;
		return ;
	}
	dfs(k+1);
	s[k]=0;
}
int main()
{
	int i,j,f;
	cin>>n;
	string a[n+1][5];
	string dic[n*2+1];
	int w=0;
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=4;j++)
		cin>>a[i][j];
		q[i][1]=a[i][1];
		q[i][2]=a[i][4];
	}
	dfs(1);
	cout<<ans;
}