1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <stdio.h>
//---------------------------------------

char S[15], T[15];
//---------------------------------------

void str(char str[], int a, int b) { int i, j=0; for(i=a; i<=b; i++) T[j++]=str[i]; T[j]=0; return; }
long long strToInt(char str[]) { int i; long long n=0LL; for(i=0; str[i]!=0; i++) n=n*10+str[i]-48; return n; }
char isprime(long long p) { if(p==1) return 0; if(p==2) return 1; if(!(p&1)) return 0; int i=3; while(1LL*i*i<=p) { if(!(p%i)) return 0; i+=2; } return 1; }
//---------------------------------------

int check()
{
  int i, k=0;
  for(i=0; S[i]!=0; i++) k++;

  if(S[i-1]=='0' || S[i-1]=='4' || S[i-1]=='6' || S[i-1]=='8') return 0; 
  
  if(S[i-1]=='2' || S[i-1]=='5') 
  { 
    str(S, 0, k-2); 
    if(isprime(strToInt(T))) return 1; else return 0; 
  }
  
  for(i=0; i<k-1; i++)
  {
    str(S, 0, i);
    if(isprime(strToInt(T))) 
    { 
      str(S, i+1, k-1); 
      if(T[0]!='0' && isprime(strToInt(T))) return 1;  
    }
  }

return 0;
}
//---------------------------------------

int main(void)
{
  gets(S);
  
  if(check()) puts("TAK");
   else 
    puts("NIE");

return 0;
}
//---------------------------------------