#include<bits/stdc++.h> using namespace std; int main() { int n,cnt = 0; cin >> n; string s[n + 1][5],c[n + 1]; for (int i = 1;i <= n;i++) { for (int j = 1;j <= 4;j++) { cin >> s[i][j]; } c[i] = s[i][1] + s[i][2] + s[i][3] + s[i][4]; } string t1[10000],t2[10000],t3[10000],t4[10000],t5[10000],t6[10000]; int k = 0; for (int i = 1;i <= n - 3;i++) { string s1,s2,s3,s4,s5,s6; s1 = s[i][1] + s[i][2] + s[i][3] + s[i][4]; s2 = s[i][4] + s[i + 1][4] + s[i + 2][4] + s[i + 3][4]; s3 = s[i + 3][4] + s[i + 3][3] + s[i + 3][2] + s[i + 3][1]; s4 = s[i + 3][1] + s[i + 2][1] + s[i + 1][1] + s[i][1]; s5 = s[i][1] + s[i + 1][2] + s[i + 2][3] + s[i + 3][4]; s6 = s[i][4] + s[i + 1][3] + s[i + 2][2] + s[i + 3][1]; // bool f = 0; // for (int j = 1;j <= n;j++) // { // if (s1 == c[j]) // { // f = 1; // break; // } // } // if (!f) // { // continue; // } // f = 0; // for (int j = 1;j <= n;j++) // { // if (s2 == c[j]) // { // f = 1; // break; // } // } // if (!f) // { // continue; // } // f = 0; // for (int j = 1;j <= n;j++) // { // if (s3 == c[j]) // { // f = 1; // break; // } // } // if (!f) // { // continue; // } // f = 0; // for (int j = 1;j <= n;j++) // { // if (s4 == c[j]) // { // f = 1; // break; // } // } // if (!f) // { // continue; // } // f = 0; // for (int j = 1;j <= n;j++) // { // if (s5 == c[j]) // { // f = 1; // break; // } // } // if (!f) // { // continue; // } // f = 0; // for (int j = 1;j <= n;j++) // { // if (s6 == c[j]) // { // f = 1; // break; // } // } // if (!f) // { // continue; // } if (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) { bool ff = 1; for (int i = 1;i <= k;i++) { if (s1 == t1[i] || s2 == t2[i] || s3 == t3[i] || s4 == t4[i] || s5 == t5[i] || s6 == t6[i]) { ff = 0; break; } } if (ff) { cnt++; t1[++k] = s1; t2[k] = s2; t3[k] = s3; t4[k] = s4; t5[k] = s5; t6[k] = s6; } } } cout << cnt; return 0; }