#include<stdio.h>
#include<set>
#include<string>
using namespace std;
set<string> memo;

void flatRound(string& xai)
{
	char t=xai[2];
	xai[2]=xai[1];
	xai[1]=xai[3];
	xai[3]=xai[4];
	xai[4]=t;
	memo.insert(xai);
}

void northRound(string& xai)
{
	char t=xai[0];
	xai[0]=xai[1];
	xai[1]=xai[5];
	xai[5]=xai[4];
	xai[4]=t;
}

void eastRound(string& xai)
{
	char t=xai[0];
	xai[0]=xai[3];
	xai[3]=xai[5];
	xai[5]=xai[2];
	xai[2]=t;
}

void allRoundIn(string xai)
{
	for(int i=0;i<4;i++)
	{
		for(int j=0;j<4;j++)
		{
			flatRound(xai);
		}
		eastRound(xai);
	}
	northRound(xai);
	for(int i=0;i<4;i++)
	{
		flatRound(xai);
	}
	northRound(xai);
	northRound(xai);
	for(int i=0;i<4;i++)
	{
		flatRound(xai);
	}
}

void setData(int n)
{
	char text[8];
	string xai = "000000";
	int redundancy=0;
	memo.clear();
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<6;j++)
		{
			scanf("%s",text);
			xai[j]=text[0];
		}
		if(memo.find(xai)==memo.end())
		{
			allRoundIn(xai);
		}
		else
		{
			redundancy++;
		}
	}
	printf("%d\n",redundancy);
}

int main()
{
	int n;
	while(1)
	{
		scanf("%d",&n);
		if(n==0) break;
		setData(n);
	}
}