#include <iostream>
#include <string>
using namespace std;
char cube[30][6];

int main()
{
	int n;
	while(cin >> n){
		if(n==0)
			break;
		string str;
		for(int i=0;i<n;i++){
			for(int j=0;j<6;j++){
				cin >> str;
				cube[i][j] = str[0];
			}
		}
		int count = 0;
		for(int i=0;i<n-1;i++){
			bool flag=false,flug=false;
			string so = "";
			so += cube[i][3];
			so += cube[i][0];
			so += cube[i][2];
			so += cube[i][5];
			for(int j=i+1;j<n;j++){
				//2,5ツ板サツ津ィ
				if((cube[i][1] == cube[j][1] && cube[i][4] == cube[j][4]) || (cube[i][1] == cube[j][4] && cube[i][4] == cube[j][1]))
					flag = true;
				//ツ残ツづィツ板サツ津ィ
				string ds = "";
				ds += cube[j][3];
				ds += cube[j][0];
				ds += cube[j][2];
				ds += cube[j][5];
				ds += ds;
				string dds = "";
				dds += cube[j][5];
				dds += cube[j][2];
				dds += cube[j][0];
				dds += cube[j][3];
				dds += dds;
				for(int i=0;i<8;i++){
					if(so[0] == ds[i]){
						flug = true;
						for(int j=0;j<4;j++){
							if(so[j] != ds[i+j])
								flug = false;
						}
						if(flug)
							break;
					}
					if(so[0] == dds[i]){
						flug = true;
						for(int j=0;j<4;j++){
							if(so[j] != dds[i+j])
								flug = false;
						}
						if(flug)
							break;
					}
				}
				if(flag && flug){
					count++;
					break;
				}
			}
		}
		cout << count << endl;
	}
	return 0;
}