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