#include <bits/stdc++.h>
#define ll long long
#define endl '\n'
using namespace std;
struct tDot 
{
	string s[4];	
}t[10010];
int n;
bool check(int b1,int b2,int b3,int b4)
{
	string s1,s2,s3,s4;
	s1=t[b4].s[0];
	s2=t[b3].s[0];
	s3=t[b2].s[0];
	s4=t[b1].s[0];
	bool f=false;
	for (int i=1;i<=n;i++)
	{
		if (i==b1 || i==b2 || i==b3 || i==b4)
		{
			continue;
		}
		if (t[i].s[0]==s1 && t[i].s[1]==s2 && t[i].s[2]==s3 && t[i].s[3]==s4)
		{
//			cout << i <<endl;
			f=true;
			break;
		}
	}
	if (!f)
	{
		return false;
	}
	s1=t[b1].s[3];
	s2=t[b2].s[3];
	s3=t[b3].s[3];
	s4=t[b4].s[3];
	f=false;
	for (int i=1;i<=n;i++)
	{
		if (i==b1 || i==b2 || i==b3 || i==b4)
		{
			continue;
		}
		if (t[i].s[0]==s1 && t[i].s[1]==s2 && t[i].s[2]==s3 && t[i].s[3]==s4)
		{
//			cout << i <<endl;
			f=true;
			break;
		}
	}	
	if (!f)
	{
		return false;
	}
	s1=t[b1].s[3];
	s2=t[b2].s[2];
	s3=t[b3].s[1];
	s4=t[b4].s[0];
	f=false;
	for (int i=1;i<=n;i++)
	{
		if (i==b1 || i==b2 || i==b3 || i==b4)
		{
			continue;
		}
		if (t[i].s[0]==s1 && t[i].s[1]==s2 && t[i].s[2]==s3 && t[i].s[3]==s4)
		{
//			cout << i <<endl;
			f=true;
			break;
		}
	}	
	if (!f)
	{
		return false;
	}
	s1=t[b1].s[0];
	s2=t[b2].s[1];
	s3=t[b3].s[2];
	s4=t[b4].s[3];
	f=false;
	for (int i=1;i<=n;i++)
	{
		if (i==b1 || i==b2 || i==b3 || i==b4)
		{
			continue;
		}
		if (t[i].s[0]==s1 && t[i].s[1]==s2 && t[i].s[2]==s3 && t[i].s[3]==s4)
		{
//			cout << i <<endl;
			f=true;
			break;
		}
	}	
	if (!f)
	{
		return false;
	}
	return true; 
}

int main()
{
	cin >> n;
	for (int i=1;i<=n;i++)
	{
		cin >> t[i].s[0] >> t[i].s[1] >> t[i].s[2] >> t[i].s[3];
	}
	ll sum=0;
	for (int i=1;i+3<=n;i++)
	{
		for (int j=i+1;j+2<=n;j++)
		{
			for (int k=j+1;k+1<=n;k++)
			{
				for (int h=k+1;h<=n;h++)
				{
					if (check(i,j,k,h))
					{
						sum++;
					}
				}
			}
		}
	}
	cout << sum;
    return 0;
}