#include<bits/stdc++.h> using namespace std; int ans=0,n; string q[10001][3]; int s[10001]={0}; string e[10001][3]; void dfs(int k) { int i; if(k==1) { for(i=1;i<=n;i++) if(s[i]==0) { s[i]=1; e[k][1]=q[i][1]; e[k][2]=q[i][2]; } } else if(k==2) { for(i=1;i<=n;i++) if(s[i]==0 && q[i][1]==e[1][2]) { s[i]=1; e[k][1]=q[i][1]; e[k][2]=q[i][2]; } } else if(k==3) { for(i=1;i<=n;i++) if(s[i]==0 && q[i][1]==e[1][1] && q[i][2]==e[2][2]) { s[i]=1; e[k][1]=q[i][1]; e[k][2]=q[i][2]; } } else if(k==4) { for(i=1;i<=n;i++) if(s[i]==0 && q[i][1]==e[2][2] && q[i][1]==e[3][2]) { s[i]=1; e[k][1]=q[i][1]; e[k][2]=q[i][2]; } } else if(k==5) { for(i=1;i<=n;i++) if(s[i]==0 && q[i][1]==e[1][2] && q[i][1]==e[2][1] && q[i][2]==e[4][2]) { s[i]=1; e[k][1]=q[i][1]; e[k][2]=q[i][2]; } } else if(k==6) { for(i=1;i<=n;i++) if(s[i]==0 && q[i][1]==e[5][2] && q[i][1]==e[4][2] && q[i][2]==e[1][1]) { s[i]=1; e[k][1]=q[i][1]; e[k][2]=q[i][2]; } } else if(k==7) { ans=ans+1; return ; } dfs(k+1); s[k]=0; } int main() { int i,j,f; cin>>n; string a[n+1][5]; string dic[n*2+1]; int w=0; for(i=1;i<=n;i++) { for(j=1;j<=4;j++) cin>>a[i][j]; q[i][1]=a[i][1]; q[i][2]=a[i][4]; } dfs(1); cout<<ans; }