#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

void rotate(string& a,string& b,string& c,string& d)
{
	string temp=a;
	a=b;
	b=c;
	c=d;
	d=temp;
}
void turnx(vector<string>& d)
{
	rotate(d[0],d[2],d[5],d[3]);
}
void turny(vector<string>& d)
{
	rotate(d[0],d[4],d[5],d[1]);
}
void turnz(vector<string>& d)
{
	rotate(d[1],d[3],d[4],d[2]);
}
void turnmin(vector<string>& d)
{
	vector<string> res=d;
	for(int i=0;i<6;i++){
		for(int j=0;j<4;j++){
			res=min(res,d);
			turnz(d);
		}
		(i&1?turnx:turny)(d);
	}
	d=res;
}

int main()
{
	for(int n;cin>>n,n;){
		vector<vector<string> > ds(n,vector<string>(6));
		for(int i=0;i<n;i++)
			for(int j=0;j<6;j++)
				cin>>ds[i][j];
		
		for(int i=0;i<n;i++)
			turnmin(ds[i]);
		
		sort(ds.begin(),ds.end());
		ds.erase(unique(ds.begin(),ds.end()),ds.end());
		
		cout<<n-ds.size()<<endl;
	}
	
	return 0;
}