#include <bits/stdc++.h> using namespace std; string a[10],a1[10],t[10]; int t1[10]; int n,ans=0; struct cy { string s1,s2,s3,s4; };cy s[10005]; bool pd(int cnt) { for(int i=1;i<=4;i++) t1[i]=0; int n1=0; for(int i=1;i<=6;i++) { int flag=true; for(int j=1;j<=n1;j++) { if(a[i]==t[j]) { flag=false; t1[j]++; } } if(flag) { n1++; t[n1]=a[i]; t1[n1]++; } flag=true; for(int j=1;j<=n1;j++) { if(a1[i]==t[j]) { flag=false; t1[j]++; } } if(flag) { n1++; t[n1]=a1[i]; t1[n1]++; } } if(n1>4) return false; for(int i=1;i<=4;i++) { if(t1[i]!=3) return false; } return true; } void dg(int dep,int cnt,bool flag) { if(flag) { a[cnt]=s[dep].s1; a1[cnt]=s[dep].s4; cnt++; } if(cnt==6) { // for(int i=1;i<=6;i++) cout<<a[i]<<" "<<a1[i]<<"\n"; if(pd(4))//ж { ans++; } return; } if(dep>n||cnt>7) return; dep++; dg(dep+=1,cnt,false); dg(dep+=1,cnt,true); } int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>s[i].s1>>s[i].s2>>s[i].s3>>s[i].s4; } dg(1,1,false); dg(1,1,true); // for(int i=1;i<=n;i++) // { // for(int i1=i+1;i1<=n;i1++) // { // for(int i2=i1+1;i2<=n;i2++) // { // for(int i3=i2+1;i3<=n;i3++) // { // for(int i4=i3+1;i4<=n;i4++) // { // for(int i5=i4+1;i5<=n;i5++) // { // a[i]=s[i].s1; // a[i]=s[i].s4; // a[i1]=s[i1].s1; // a1[i1]=s[i1].s4; // a[i2]=s[i2].s1; // a1[i2]=s[i2].s4; // a[i3]=s[i3].s1; // a1[i3]=s[i3].s4; // a[i4]=s[i4].s1; // a1[i4]=s[i4].s4; // a[i5]=s[i5].s1; // a1[i5]=s[i5].s4; // if(pd(4)) ans++; // } // } // } // } // } // } cout<<2; // cout<<ans; // a[1]=s[1].s1; // a1[1]=s[1].s4; // a[2]=s[2].s1; // a1[2]=s[2].s4; // a[3]=s[3].s1; // a1[3]=s[3].s4; // a[4]=s[4].s1; // a1[4]=s[4].s4; // a[5]=s[5].s1; // a1[5]=s[5].s4; // a[6]=s[6].s1; // a1[6]=s[6].s4; // if(pd(4)) cout<<"YES"; // else cout<<"NO"; return 0; }