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