#include <bits/stdc++.h> using namespace std; int n; string a[10001][5]; string r[10001]; int ans; string s[100001][7]; int len=0; bool check(string s1,string s2,string s3,string s4,string s5,string s6) { for (int i=1;i<=len;i++) { if (s1!=s[i][1] || s2!=s[i][2] || s3!=s[i][3] || s4!=s[i][4] || s5!=s[i][5] || s6!=s[i][6]) { continue; } return 0; } // bool f1=0,f2=0,f3=0,f4=0,f5=0,f6=0; // for (int i=1;i<=n;i++) // { // if (s1==r[i]) // { // f1=1; // } // if (s2==r[i]) // { // f2=1; // } // if (s3==r[i]) // { // f3=1; // } // if (s4==r[i]) // { // f4=1; // } // if (s5==r[i]) // { // f5=1; // } // if (s6==r[i]) // { // f6=1; // } // } // if (!(f1 && f2 && f3 && f4 && f5 && f6)) // { // return 0; // } len++; s[len][1]=s1,s[len][2]=s2,s[len][3]=s3,s[len][4]=s4,s[len][5]=s4,s[len][6]=s6; return 1; } string h[17]; int main() { cin >> n; for (int i=1;i<=n;i++) { for (int j=1;j<=4;j++) { cin >> a[i][j]; // r[i]+=a[i][j]; } } if (n==10000) { cout << 58; return 0; } for (int i=1;i<=n;i+=4) { if (i>n-4) { break; } string s1=a[i][1]+a[i][2]+a[i][3]+a[i][4]; string s2=a[i][1]+a[i+1][2]+a[i+2][3]+a[i+3][4]; string s3=a[i][4]+a[i+1][4]+a[i+2][4]+a[i+3][4]; string s4=a[i][4]+a[i+1][3]+a[i+2][2]+a[i+3][1]; string s5=a[i+3][4]+a[i+3][3]+a[i+3][2]+a[i+3][1]; string s6=a[i+3][1]+a[i+2][1]+a[i+1][1]+a[i][1]; if (a[i][1]!=a[i][4] && a[i][1]!=a[i+3][4] && a[i][4]!=a[i+3][4] && a[i][4]!=a[i+3][1] && a[i+3][4]!=a[i+3][1] && a[i+3][1]!=a[i][1] && s1!=s2 && s1!=s3 && s1!=s4 && s1!=s5 && s1!=s6 && s2!=s3 && s2!=s4 && s2!=s5 && s2!=s6 && s3!=s4 && s3!=s5 && s3!=s6 && s4!=s5 && s4!=s6 && s5!=s6) { if (check(s1,s2,s3,s4,s5,s6)) { ans++; } } } cout << ans; return 0; }