#6 #9 WA QAQ
谁来救救我QAQ
#include<iostream>
#include<cstdio>
#include<string>
#include<queue>
#include<algorithm>
using namespace std;
struct trie
{
bool end;
int son[2],fail;
}t[500001];
int n,cnt;
bool vis[500001],f[500001];
inline void build(string s)
{
int len=s.length(),k=0;
for(register int i=0;i<len;++i)
{
if(!t[k].son[s[i]-'0'])
t[k].son[s[i]-'0']=++cnt;
k=t[k].son[s[i]-'0'];
}
t[k].end=1;
}
inline void getfail()
{
queue<int> q;
for(register int i=0;i<2;++i)
if(t[0].son[i])
q.push(t[0].son[i]);
while(!q.empty())
{
int k=q.front();
q.pop();
for(register int i=0;i<2;++i)
if(t[k].son[i])
{
t[t[k].son[i]].fail=t[t[k].fail].son[i];
q.push(t[k].son[i]);
}
else
t[k].son[i]=t[t[k].fail].son[i];
}
}
void dfs(int k)
{
vis[k]=1;
for(register int i=0;i<2;++i)
{
if(vis[t[k].son[i]])
{
puts("TAK");
exit(0);
}
if(t[k].son[i]&&!t[t[k].son[i]].end&&!t[t[t[k].son[i]].fail].end&&!f[t[k].son[i]])
{
f[t[k].son[i]]=1;
dfs(t[k].son[i]);
}
}
vis[k]=0;
}
int main()
{
scanf("%d",&n);
for(register int i=1;i<=n;++i)
{
string s;
cin>>s;
build(s);
}
getfail();
dfs(0);
puts("NIE");
return 0;
}