#include <bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	set<vector<string>>s;
	for(int i=0;i<n;i++){
		vector<string>a;
		a.resize(4);
		for(int j=0;j<(int)a.size();j++) cin>>a[i];
		s.insert(a);
	}
	set<vector<vector<string>>>ans;
	for(auto c:s){
		vector<vector<string>>cnt;
		cnt.resize(4);
		for(auto cc:cnt) cc.resize(4);
		for(auto cc:s){
			if(c!=cc){
				for(auto ccc:s){
					if(ccc!=c && ccc!=cc){
						if(ccc[0]==c[0] && ccc[(int)ccc.size()-1]==cc[(int)cc.size()-1]){
							for(auto cccc:s){
								if(cccc!=ccc && cccc!=cc && cccc!=c){
									if(cccc[0]==c[(int)c.size()-1] && cccc[(int)cccc.size()-1]==cc[(int)cc.size()-1]){
										for(auto a:s){
											if(a!=c && a!=cc && a!=ccc && a!=cccc){
												if(a[0]==cc[(int)cc.size()-1] && a[(int)a.size()-1]==c[0]){
													for(auto b:s){
														if(b!=a && b!=cccc && b!=ccc && b!=cc && b!=c){
															if(b[0]==c[(int)c.size()-1] && b[(int)b.size()-1]==cc[0]){
																cnt[0]=c;
																cnt[1]=cc;
																cnt[0][0]=a[3];
																cnt[1][0]=a[2];
																cnt[2][0]=a[1];
																cnt[3][0]=a[0];
																
																cnt[0][3]=b[0];
																cnt[1][3]=b[1];
																cnt[2][3]=b[2];
																cnt[3][3]=b[3];
																
																cnt[0][3]=cccc[0];
																cnt[1][2]=cccc[1];
																cnt[2][1]=cccc[2];
																cnt[3][0]=cccc[3];
																
																cnt[0][0]=ccc[0];
																cnt[1][1]=ccc[1];
																cnt[2][2]=ccc[2];
																cnt[3][3]=ccc[3];
																ans.insert(cnt);
															}
														}
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	cout<<ans.size()<<endl;
	return 0;
}