#include<bits/stdc++.h> using namespace std; const int mod=10007; const int N=1e5+5; int snow[N][20]; vector<int> hash[N]; int cmp(int a,int b){ int i,j; for(int i=0;i<6;i++){ if(snow[a][0]==snow[b][i]){ for(j=1;j<6;j++){ if(snow[a][j]!=snow[b][(j+i)%6]) break; } if(j==6) return 1; for(int j=1;j<6;j++){ if(snow[a][6-j]!=snow[b][(j+i)%6]) break; } if(j==6) return 1; } } return 0; } bool find(int i){ int key,sum=0; for(int j=0;j<6;j++){ sum+=snow[i][j]; } key=sum%mod; for(int j=0;j<hash[key].size();j++){ if(cmp(i,hash[key][j])){ return 1; } } hash[key].push_back(i); return 0; } int main(){ ios::sync_with_stdio(false); cin.tie(0); int n;cin>>n; for(int i=1;i<=n;i++){ for(int j=1;j<=6;j++){ cin>>snow[i][j]; if(find(i)){ cout<<"Twin snowflakes found."; return 0; } } } cout<<"No two snowflakes are alike."; return 0; } /************************************************************** Problem: 2353 User: liangshinan Language: C++ Result: Compile Error ****************************************************************/