program xqz; const maxn=100005; maxm=200005; var i,j,k,m,n,ll,rr,b,p:longint; q,ind,edge:array[0..maxn] of longint; point,next:array[-maxm..maxm] of longint; z:array[0..maxn] of boolean; ok:boolean; begin read(n,m); ok:=true; if m<=n-1 then begin writeln('NIE'); close(input); close(output); halt; end; for m:=1 to m do begin read(j,k); next[m]:=edge[j]; edge[j]:=m; point[m]:=k; inc(ind[k]); next[-m]:=edge[k]; edge[k]:=-m; point[-m]:=j; inc(ind[j]); end; for i:=1 to n do if ind[i]=1 then begin inc(rr); q[rr]:=i; end else if ind[i]=0 then begin ok:=false; break; end; while ll<rr do begin inc(ll); i:=q[ll]; b:=edge[i]; z[i]:=true; if ind[i]=0 then begin ok:=false; break; end; while b<>0 do begin p:=point[b]; if not z[p] then begin dec(ind[p]); if (ind[p]=1) then begin inc(rr); q[rr]:=p; end; end; b:=next[b]; end; end; if ok then writeln('TAK') else writeln('NIE'); end.