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