#include<bits/stdc++.h> using namespace std; string a[10005][5]; string s[10005]; vector<string> q,p; int n; bool check(int m){ string h1=""; for(int i=1; i<=4; i++) h1+=a[m][i]; string hn=""; for(int i=4; i>=1; i--) hn+=a[m+3][i]; string ln=""; for(int i=m; i<=m+3; i++) ln+=a[i][4]; string l1=""; for(int i=m+3; i>=m; i--) l1+=a[i][1]; string d1=""; for(int i=m; i<=m+3; i++) d1+=a[i][i]; string d2=""; for(int i=m; i<=m+3; i++) d2+=a[i][n-i+1]; q.push_back(h1);q.push_back(hn); q.push_back(l1);q.push_back(ln); q.push_back(d1);q.push_back(d2); for(int i=1; i<=6; i++) { for(int j=1; j<=6; j++) { if(i==j) continue; if(q[i]==q[j]) { return false; } } } for(int i=1; i<=6; i++) { int f=0; for(int j=1; j<=p.size(); j++) { if(p[j]==q[i]){ f=1; break; } } if(f==0) return false; } return true; } int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n; for(int i=1; i<=n; i++) { for(int j=1; j<=4; j++){ cin>>a[i][j]; s[i]+=a[i][j]; } p.push_back(s[i]); } int ans=0; for(int i=1; i<=n; i++) { if(check(i)) ans++; } cout<<ans; return 0; }