#include<bits/stdc++.h>
using namespace std;
int cnt,s[100005],n,snow[100005][10],head[100005];
struct edge{
int to,next;
}e[100005];
void add(int val,int i){
e[++cnt].to=i;
e[cnt].next=head[val];
head[val]=cnt;
}
int cmp(int a,int b){
int i,j;
for(int i=0;i<6;i++){
if(snow[a][0]==snow[b][i]){
for(int j=1;j<6;j++){
if(snow[a][j]!=snow[b][(i+j)%6]){
break;
}
}
if(j==6){
return 1;
}
for(int j=1;j<6;j++){
if(snow[a][6-j]!=snow[b][(i+j)%6]){
break;
}
}
if(j==6){
return 1;
}
}
}
return 0;
}
bool find(int i,int sum){
int key;
key=sum%n;
for(int j=head[key];j;j=e[j].next){
if(cmp(i,e[j].to)){
return 1;
}
}
add(key,i);
return 0;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=0;j<6;j++){
cin>>snow[i][j];
s[i]+=snow[i][j];
}
}
for(int i=1;i<=n;i++){
if(find(i,s[i])){
cout<<"Twin snowflakes found.";
return 0;
}
}
cout<<"No two snowflakes are alike.";
return 0;
}