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