#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; }