Problem: Let's call a string "s-palindrome" if it is symmetric about the middle of the string. For example, the string "oHo" is "s-palindrome", but the string "aa" is not. The string "aa" is not "s-palindrome", because the second half of it is not a mirror reflection of the first half.

<image> English alphabet

You are given a string s. Check if the string is "s-palindrome".

Input

The only line contains the string s (1 ≤ |s| ≤ 1000) which consists of only English letters.

Output

Print "TAK" if the string s is "s-palindrome" and "NIE" otherwise.

Examples

Input

oXoxoXo


Output

TAK


Input

bod


Output

TAK


Input

ER


Output

NIE

Solution (in CPP):

Solution:
#include <bits/stdc++.h>
int main() {
  char a[1005];
  scanf("%s", a);
  int b = strlen(a), i, flag = 0;
  for (i = 0; i < b / 2 + 1; i++) {
    if (a[i] != a[b - i - 1]) {
      if ((a[i] == 'b' && a[b - i - 1] == 'd') ||
          (a[i] == 'p' && a[b - i - 1] == 'q') ||
          (a[i] == 'q' && a[b - 1 - i] == 'p'))
        flag = 0;
      else if ((a[i] == 'd') && (a[b - i - 1] == 'b'))
        flag = 0;
      else {
        printf("NIE");
        return 0;
      }
    } else {
      if (a[i] == 'A' || a[i] == 'H' || a[i] == 'I' || a[i] == 'M' ||
          a[i] == 'O' || a[i] == 'o' || a[i] == 'T' || a[i] == 'U' ||
          a[i] == 'V' || a[i] == 'v' || a[i] == 'w' || a[i] == 'W' ||
          a[i] == 'x' || a[i] == 'X' || a[i] == 'Y')
        flag = 0;
      else {
        printf("NIE");
        return 0;
      }
    }
  }
  if (flag == 0)
    printf("TAK");
  else
    printf("NIE");
  return 0;
}