#include<bits/stdc++.h>
using namespace std;
struct j{
	string a[10];
};
j s[10010];
map <string,bool> mp;
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=4;j++){
			cin>>s[i].a[j];
		}
	}
	long long sum=0;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			for(int k=1;k<=n;k++){
				for(int f=1;f<=n;f++){
					if(i==j||j==k||k==f||i==k||i==f||j==f){
						break;
					}
					string a1,a2,a3,a4,a5,a6;
					a1=s[i].a[0]+s[i].a[1]+s[i].a[2]+s[i].a[2];
					a2=s[i].a[3]+s[j].a[3]+s[k].a[3]+s[f].a[3];
					a3=s[f].a[3]+s[f].a[2]+s[f].a[1]+s[f].a[0];	
					a4=s[f].a[0]+s[k].a[0]+s[j].a[0]+s[i].a[0];
					a5=s[i].a[3]+s[j].a[2]+s[k].a[1]+s[f].a[0];
					a6=s[i].a[0]+s[j].a[1]+s[k].a[2]+s[f].a[3];	
					if(a1!=a2&&a1!=a3&&a1!=a4&&a1!=a5&&a2!=a3&&a2!=a4&&a2!=a5&&a3!=a4&&a3!=a5&&a4!=a5&&!mp[a1]&&!mp[a2]&&!mp[a3]&&!mp[a4]&&!mp[a5]&&!mp[a6]){
						mp[a1]=1;
						mp[a2]=1;
						mp[a3]=1;
						mp[a4]=1;
						mp[a5]=1;
						mp[a6]=1;
						sum++;
					}
				}
			}
		}
	}
	cout<<sum;
	return 0;
}