#include<bits/stdc++.h> using namespace std; const int w=1e4+10; struct be { string be; string en; }n[w]; int n2; be a[7]; int ans=0; void dfs(int dep) { if(dep<=4&&dep>1&&a[dep].be!=a[dep-1].en) return; else if(dep==5) { if(a[5].be!=a[1].be||a[5].en!=a[2].en) return; } else if(dep==6) { if(a[6].be!=a[1].en||a[6].en!=a[3].en) return; else { ans++; exit(0); } } for(int i=1; i<=n2; i++) { a[dep+1].be=n[i].be; a[dep+1].en=n[i].en; dfs(dep+1); a[dep+1].be=""; a[dep+1].en=""; } } int main() { cin>>n2; int w=n2*4; int i=0; int s3=0; while(w--) { s3++; string n3; cin>>n3; if(s3%4==1) { i++; n[i].be=n3; } if(s3%4==0) { n[i].en=n3; } } for(int j=1; j<=i; j++) { a[1].be=n[i].be; a[1].en=n[i].en; dfs(1); a[1].be=""; a[1].en=""; } cout<<ans; return 0; }