#include<bits/stdc++.h>
using namespace std;
#define int long long
int read(){
	int x=0;
	char c=getchar();
	char f=1;
	while(!isdigit(c)){
		f&=(x!='-');
		c=getchar();
	}
	while(isdigit(c)){
		x=(x<<1)+(x<<3)+(c^48);
		c=getchar();
	}
	x=f?x:-x;
	return x;
}
const int N=10005;
int n,tot;
string s[N][5];
set<pair<string,string>>st;
map<pair<string,string>,int>mp;
vector<pair<string,string>>g[N];

void wininit(string a,string b){
	if(!st.count(make_pair(a,b))){
		mp[make_pair(a,b)]=++tot;
	}
}
//ȻDFSʱһͿ
//DPPPPPPPP 
int dp[N][N];
signed main(){
	n=read();
	if(n<6){
		puts("0");
		return 0;
	}
	for(int i=1;i<=n;i++){
		cin>>s[i][1]>>s[i][2]>>s[i][3]>>s[i][4];
	}
	int ans=0;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(i==j){
				continue;
			}
			for(int k=1;k<=n;k++){
				if(j==k || i==k){
					continue;
				}
				for(int l=1;l<=n;l++){
					if(i==l || j==l || k==l){
						continue;
					}
					for(int a=1;a<=n;a++){
						if(i==a || j==a || k==a || l==a){continue;}
						for(int b=1;b<=n;b++){
							if(i==b || j==b || k==b || l==b || a==b){continue;}
							if(s[i][4]==s[j][1] && s[j][4]==s[k][1] && s[k][4]==s[l][1] && s[l][4]==s[i][1]
						    && s[i][1]==s[a][1] && s[j][1]==s[b][1] && s[a][4]==s[j][4] && s[b][4]==s[k][4]){
								ans++;
							}
						}
					}
				}
			} 
		} 
	}
	cout<<ans;
//	for(int i=1;i<=n;i++){
//		cin>>s[i][1]>>s[i][2]>>s[i][3]>>s[i][4];
//		wininit(s[i][1]);
//		wininit(s[i][4]);
//		g[mp[s[i][4]]].push_back(i);
//	}
//	for(int i=1;i<=n;i++){
//		for(int lst:g[mp[s[i][1]]]){
//			dp[i][i]=dp[i-1][lst]+1;
//		}
//	}
//	int ans=0;
//	for(int i=1;i<=tot;i++){
//		ans+=(dp[i][i]>=4);
//	}
//	cout<<ans;
}