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