#include<bits/stdc++.h> using namespace std; long long n,ans,v[10005]; struct sss { string h,t,w; }a[10005]; void sss2(int dep,string he,string ta1,string ta2,string ta3) { if(dep==4) { ans++; return ; } if(dep==1) { for(int i=1;i<=n;i++) { if(!v[i]&&a[i].h==he) { v[i]=1; sss2(dep+1,he,ta1,ta2,a[i].t); v[i]=0; } } } if(dep==2) { for(int i=1;i<=n;i++) { if(!v[i]&&a[i].h==ta3&&a[i].t==ta2) { v[i]=1; sss2(dep+1,he,ta1,ta2,ta3); v[i]=0; } } } else { for(int i=1;i<=n;i++) { if(!v[i]&&a[i].h==ta3&&a[i].t==ta1) { v[i]=1; sss2(dep+1,he,ta1,ta2,ta3); v[i]=0; } } } } void sss1(int dep,string he,string ta1,string ta2) { if(dep==4) { sss2(1,he,ta1,ta2,""); return ; } if(dep==1) { for(int i=1;i<=n;i++) { v[i]=1; sss1(dep+1,a[i].t,a[i].h,""); v[i]=0; } } if(dep==2) { for(int i=1;i<=n;i++) { if(!v[i]&&a[i].t==ta1) { v[i]=1; sss1(dep+1,he,ta1,a[i].h); v[i]=0; } } } else { for(int i=1;i<=n;i++) { if(!v[i]&&a[i].h==he&&a[i].t==ta2) { v[i]=1; sss1(dep+1,he,ta1,ta2); v[i]=0; } } } } int main() { cin>>n; for(int i=1;i<=n;i++) cin>>a[i].h>>a[i].w>>a[i].w>>a[i].t; sss1(1,"","",""); cout<<ans; return 0; }