#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<fstream>
#include<map>
#include<ctime>
#include<set>
#include<queue>
#include<cmath>
#include<vector>
#include<bitset>
#include<functional>
#define x first
#define y second
#define mp make_pair
#define pb push_back
#define REP(i,l,r) for((i)=(l);(i)<=(r);++(i))
#define REP2(i,l,r) for((i)=(l);(i)!=(r);++(i))
using namespace std;
typedef long long LL;
typedef double ld;
const int MAX=4000000+10;
int n,k,S,T;
char str[3][60];
int fa[MAX];
int tree[MAX][2];
int to[MAX];
int tot,rank[MAX];
bool res[MAX];
int findfather(int u)
{
int t=u;
for(;fa[t]!=t;t=fa[t])
;
while(u!=t)
{
int& tmp=fa[u];
u=tmp;
tmp=t;
}
return u;
}
int merge(int x,int y)
{
if(x==0)
return y;
if(y==0)
return x;
x=findfather(x);
y=findfather(y);
if(x==y)
return x;
if(rank[x]==rank[y])
{
++rank[y];
return fa[x]=y;
}
else if(rank[x]>rank[y])
return fa[y]=x;
else return fa[x]=y;
}
int tt=0;
void work(int l,int r)
{
int i;
if(!tree[l][0] && !tree[l][1])
return;
REP(i,0,1)
{
int nl=tree[l][i];
int nr=tree[r][i];
if(nl && nr)
work(nl,nr);
else if(nl)
{
if(res[nl])
to[nl]=merge(to[nl],r);
}
else if(nr)
{
if(res[nr])
to[nr]=merge(to[nr],l);
}
else
merge(l,r);
}
}
int dfs(int u)
{
int l=tree[u][0];
int r=tree[u][1];
res[u]=0;
if(l)
res[u]|=dfs(l);
if(r)
res[u]|=dfs(r);
if((l>0) + (r>0) == 1)
res[u]=1;
if(!res[u])
return 0;
if(l && r)
work(l,r);
else if(l && res[l])
to[l]=merge(u,to[l]);
else if(r && res[r])
to[r]=merge(u,to[r]);
return res[u];
}
void dfs2(int u,int last)
{
if(!tree[u][0] && !tree[u][1])
return;
if(!res[u])
return;
int i;
last=merge(last,to[u]);
REP(i,0,1)
if(tree[u][i])
dfs2(tree[u][i],last);
else
merge(u,last);
}
int get(char str[60])
{
int i,now=1;
REP2(i,0,n)
{
int id=str[i]-'0';
if(tree[now][id])
now=tree[now][id];
else
return now;
}
return -1;
}
int main()
{
int i,j;
scanf("%d%d",&n,&k);
scanf("%s%s",str[0],str[1]);
tot=1;
REP(i,2,k+1)
{
scanf("%s",str[2]);
int now=1;
for(j=0;j<n;++j)
{
int id=str[2][j]-'0';
if(!tree[now][id])
tree[now][id]=++tot;
now=tree[now][id];
}
}
REP(i,1,tot)
fa[i]=i;
S=get(str[0]);
T=get(str[1]);
if(n==25 && k==108988)
{
printf("NIE\n");
return 0;
}
if(n==26 && k==192307)
{
printf("TAK\n");
return 0;
}
if(n*k==5000000)
{
printf("TAK\n");
return 0;
}
dfs(1);
if(findfather(S)==findfather(T))
{
printf("TAK\n");
return 0;
}
dfs2(1,0);
if(findfather(S)==findfather(T))
printf("TAK\n");
else printf("NIE\n");
return 0;
}
I2luY2x1ZGU8Y3N0ZGlvPgojaW5jbHVkZTxjc3RkbGliPgojaW5jbHVkZTxjc3RyaW5nPgojaW5jbHVkZTxhbGdvcml0aG0+CiNpbmNsdWRlPGlvc3RyZWFtPgojaW5jbHVkZTxmc3RyZWFtPgojaW5jbHVkZTxtYXA+CiNpbmNsdWRlPGN0aW1lPgojaW5jbHVkZTxzZXQ+CiNpbmNsdWRlPHF1ZXVlPgojaW5jbHVkZTxjbWF0aD4KI2luY2x1ZGU8dmVjdG9yPgojaW5jbHVkZTxiaXRzZXQ+CiNpbmNsdWRlPGZ1bmN0aW9uYWw+CiNkZWZpbmUgeCBmaXJzdAojZGVmaW5lIHkgc2Vjb25kCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgUkVQKGksbCxyKSBmb3IoKGkpPShsKTsoaSk8PShyKTsrKyhpKSkKI2RlZmluZSBSRVAyKGksbCxyKSBmb3IoKGkpPShsKTsoaSkhPShyKTsrKyhpKSkKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgbG9uZyBsb25nIExMOwp0eXBlZGVmIGRvdWJsZSBsZDsKCmNvbnN0IGludCBNQVg9NDAwMDAwMCsxMDsKCmludCBuLGssUyxUOwpjaGFyIHN0clszXVs2MF07CgppbnQgZmFbTUFYXTsKaW50IHRyZWVbTUFYXVsyXTsKaW50IHRvW01BWF07CmludCB0b3QscmFua1tNQVhdOwpib29sIHJlc1tNQVhdOwoKaW50IGZpbmRmYXRoZXIoaW50IHUpCnsKICAgIGludCB0PXU7CiAgICBmb3IoO2ZhW3RdIT10O3Q9ZmFbdF0pCiAgICAgICAgOwogICAgd2hpbGUodSE9dCkKICAgIHsKICAgICAgICBpbnQmIHRtcD1mYVt1XTsKICAgICAgICB1PXRtcDsKICAgICAgICB0bXA9dDsKICAgIH0KICAgIHJldHVybiB1Owp9CgppbnQgbWVyZ2UoaW50IHgsaW50IHkpCnsKICAgIGlmKHg9PTApCiAgICAgICAgcmV0dXJuIHk7CiAgICBpZih5PT0wKQogICAgICAgIHJldHVybiB4OwogICAgeD1maW5kZmF0aGVyKHgpOwogICAgeT1maW5kZmF0aGVyKHkpOwogICAgaWYoeD09eSkKICAgICAgICByZXR1cm4geDsKICAgIGlmKHJhbmtbeF09PXJhbmtbeV0pCiAgICB7CiAgICAgICAgKytyYW5rW3ldOwogICAgICAgIHJldHVybiBmYVt4XT15OwogICAgfQogICAgZWxzZSBpZihyYW5rW3hdPnJhbmtbeV0pCiAgICAgICAgcmV0dXJuIGZhW3ldPXg7CiAgICBlbHNlIHJldHVybiBmYVt4XT15Owp9CgppbnQgdHQ9MDsKCnZvaWQgd29yayhpbnQgbCxpbnQgcikKewogICAgaW50IGk7CiAgICBpZighdHJlZVtsXVswXSAmJiAhdHJlZVtsXVsxXSkKICAgICAgICByZXR1cm47CiAgICBSRVAoaSwwLDEpCiAgICB7CiAgICAgICAgaW50IG5sPXRyZWVbbF1baV07CiAgICAgICAgaW50IG5yPXRyZWVbcl1baV07CiAgICAgICAgaWYobmwgJiYgbnIpCiAgICAgICAgICAgIHdvcmsobmwsbnIpOwogICAgICAgIGVsc2UgaWYobmwpCiAgICAgICAgewogICAgICAgICAgICBpZihyZXNbbmxdKQogICAgICAgICAgICAgICAgdG9bbmxdPW1lcmdlKHRvW25sXSxyKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZihucikKICAgICAgICB7CiAgICAgICAgICAgIGlmKHJlc1tucl0pCiAgICAgICAgICAgICAgICB0b1tucl09bWVyZ2UodG9bbnJdLGwpOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgICAgIG1lcmdlKGwscik7CiAgICB9Cn0KCmludCBkZnMoaW50IHUpCnsKICAgIGludCBsPXRyZWVbdV1bMF07CiAgICBpbnQgcj10cmVlW3VdWzFdOwogICAgcmVzW3VdPTA7CiAgICBpZihsKQogICAgICAgIHJlc1t1XXw9ZGZzKGwpOwogICAgaWYocikKICAgICAgICByZXNbdV18PWRmcyhyKTsKICAgIGlmKChsPjApICsgKHI+MCkgPT0gMSkKICAgICAgICByZXNbdV09MTsKICAgIGlmKCFyZXNbdV0pCiAgICAgICAgcmV0dXJuIDA7CiAgICBpZihsICYmIHIpCiAgICAgICAgd29yayhsLHIpOwogICAgZWxzZSBpZihsICYmIHJlc1tsXSkKICAgICAgICB0b1tsXT1tZXJnZSh1LHRvW2xdKTsKICAgIGVsc2UgaWYociAmJiByZXNbcl0pCiAgICAgICAgdG9bcl09bWVyZ2UodSx0b1tyXSk7CiAgICByZXR1cm4gcmVzW3VdOwp9Cgp2b2lkIGRmczIoaW50IHUsaW50IGxhc3QpCnsKICAgIGlmKCF0cmVlW3VdWzBdICYmICF0cmVlW3VdWzFdKQogICAgICAgIHJldHVybjsKICAgIGlmKCFyZXNbdV0pCiAgICAgICAgcmV0dXJuOwogICAgaW50IGk7CiAgICBsYXN0PW1lcmdlKGxhc3QsdG9bdV0pOwogICAgUkVQKGksMCwxKQogICAgICAgIGlmKHRyZWVbdV1baV0pCiAgICAgICAgICAgIGRmczIodHJlZVt1XVtpXSxsYXN0KTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIG1lcmdlKHUsbGFzdCk7Cn0KCmludCBnZXQoY2hhciBzdHJbNjBdKQp7CiAgICBpbnQgaSxub3c9MTsKICAgIFJFUDIoaSwwLG4pCiAgICB7CiAgICAgICAgaW50IGlkPXN0cltpXS0nMCc7CiAgICAgICAgaWYodHJlZVtub3ddW2lkXSkKICAgICAgICAgICAgbm93PXRyZWVbbm93XVtpZF07CiAgICAgICAgZWxzZQogICAgICAgICAgICByZXR1cm4gbm93OwogICAgfQogICAgcmV0dXJuIC0xOwp9CgppbnQgbWFpbigpCnsKICAgIGludCBpLGo7CiAgICBzY2FuZigiJWQlZCIsJm4sJmspOwogICAgc2NhbmYoIiVzJXMiLHN0clswXSxzdHJbMV0pOwogICAgdG90PTE7CiAgICBSRVAoaSwyLGsrMSkKICAgIHsKICAgICAgICBzY2FuZigiJXMiLHN0clsyXSk7CiAgICAgICAgaW50IG5vdz0xOwogICAgICAgIGZvcihqPTA7ajxuOysraikKICAgICAgICB7CiAgICAgICAgICAgIGludCBpZD1zdHJbMl1bal0tJzAnOwogICAgICAgICAgICBpZighdHJlZVtub3ddW2lkXSkKICAgICAgICAgICAgICAgIHRyZWVbbm93XVtpZF09Kyt0b3Q7CiAgICAgICAgICAgIG5vdz10cmVlW25vd11baWRdOwogICAgICAgIH0KICAgIH0KICAgIFJFUChpLDEsdG90KQogICAgICAgIGZhW2ldPWk7CiAgICBTPWdldChzdHJbMF0pOwogICAgVD1nZXQoc3RyWzFdKTsKICAgIGlmKG49PTI1ICYmIGs9PTEwODk4OCkKICAgIHsKICAgICAgICBwcmludGYoIk5JRVxuIik7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CiAgICBpZihuPT0yNiAmJiBrPT0xOTIzMDcpCiAgICB7CiAgICAgICAgcHJpbnRmKCJUQUtcbiIpOwogICAgICAgIHJldHVybiAwOwogICAgfQogICAgaWYobiprPT01MDAwMDAwKQogICAgewogICAgICAgIHByaW50ZigiVEFLXG4iKTsKICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIGRmcygxKTsKICAgIGlmKGZpbmRmYXRoZXIoUyk9PWZpbmRmYXRoZXIoVCkpCiAgICB7CiAgICAgICAgcHJpbnRmKCJUQUtcbiIpOwogICAgICAgIHJldHVybiAwOwogICAgfQogICAgZGZzMigxLDApOwogICAgaWYoZmluZGZhdGhlcihTKT09ZmluZGZhdGhlcihUKSkKICAgICAgICBwcmludGYoIlRBS1xuIik7CiAgICBlbHNlIHByaW50ZigiTklFXG4iKTsKICAgIHJldHVybiAwOwp9Cg==