#include <bits/stdc++.h> using namespace std; string s[10001][5]; string str[10001]; int n, ans; string turn(int x) { return s[x][1] + s[x][2] + s[x][3] + s[x][4]; } bool check1(int x) { string st1 = s[x][1] + s[x][2] + s[x][3] + s[x][4], st2 = s[x + 3][4] + s[x + 3][3] + s[x + 3][2] + s[x + 3][1], st3 = s[x + 3][1] + s[x + 2][1] + s[x + 1][1] + s[x][1], st4 = s[x][4] + s[x + 1][4] + s[x + 2][4] + s[x + 3][4], st5 = s[x][1] + s[x + 1][2] + s[x + 2][3] + s[x + 3][4], st6 = s[x][4] + s[x + 1][3] + s[x + 2][2] + s[x + 3][1]; // cout << st1 << endl; // cout << st2 << endl; // cout << st3 << endl; // cout << st4 << endl; // cout << st5 << endl; // cout << st6 << endl; // cout << endl; if(st1 == st2 || st1 == st3 || st1 == st4 || st1 == st5 || st1 == st6 || st2 == st3 || st2 == st4 || st2 == st5 || st2 == st6 || st3 == st4 || st3 == st5 || st3 == st6 || st4 == st5 || st4 == st6 || st5 == st6) return 0; return 1; } bool check2(string c) { for(int i = 1;i <= ans;i++) if(str[i] == c) return 0; return 1; } int main() { cin >> n; for(int i = 1;i <= n;i++) for(int j = 1;j <= 4;j++) cin >> s[i][j]; // cout << endl; for(int i = 1;i <= n - 3;i++) { string st1 = turn(i), st2 = turn(i + 1), st3 = turn(i + 2), st4 = turn(i + 3); string st = st1 + st2 + st3 + st4; if(check1(i) && check2(st)) { str[++ans] = st; } } cout << ans; return 0; }