#include<bits/stdc++.h>
using namespace std;
int n,v[10],ans;
string s[10005][5];
map<string,int> mp;
map<string,int> sp;
bool check(){
	for(int i=1;i<=n;i++){
		if(v[i]){
			mp[s[i][1]]++;
			mp[s[i][4]]++;
		}
	}
	for(int i=1;i<=n;i++){
		if(v[i]){
			if(mp[s[i][1]]%3!=0) return false;
			if(mp[s[i][4]]%3!=0) return false;
		}
	}
	return true;
}
bool check2(int x){
	int sum=0;
	for(int i=1;i<=n;i++){
		if(v[i]||i==x){
			string u=s[i][1],v=s[i][4];
			if(sp[u]==0){
				sum++;
				sp[u]++;
			}
			if(sp[v]==0){
				sum++;
				sp[v]++;
			}
		}
	}
	if(sum>4) return false;
	else return true;
}
void dfs(int dep){
	if(dep==6){
		if(check()){
			ans++;
			return;
		}		
	}
	for(int i=1;i<=n;i++){
		if(!check2(i)) continue;
		if(v[i]) continue;
		v[i]=1;
		dfs(dep+1);
		v[i]=0;
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=4;j++){
			cin>>s[i][j];
		} 
	}
	for(int i=1;i<=n;i++){
		v[i]=1;
		dfs(1);
	}
	cout<<ans;
	return 0;
}