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>
#pragma comment(linker, "/STACK:1024000000,1024000000")
using namespace std;
char s[1010];
int ismirror(char a, char b) {
  switch (a) {
    case 'A':
      return b == 'A';
    case 'b':
      return b == 'd';
    case 'd':
      return b == 'b';
    case 'H':
      return b == 'H';
    case 'I':
      return b == 'I';
    case 'M':
      return b == 'M';
    case 'O':
      return b == 'O';
    case 'o':
      return b == 'o';
    case 'p':
      return b == 'q';
    case 'q':
      return b == 'p';
    case 'T':
      return b == 'T';
    case 'U':
      return b == 'U';
    case 'V':
      return b == 'V';
    case 'v':
      return b == 'v';
    case 'W':
      return b == 'W';
    case 'w':
      return b == 'w';
    case 'X':
      return b == 'X';
    case 'x':
      return b == 'x';
    case 'Y':
      return b == 'Y';
    default:
      return 0;
  }
}
int main() {
  scanf("%s", s);
  int len = strlen(s);
  int i, j;
  for (i = 0, j = len - 1; i <= j; i++, j--) {
    if (!ismirror(s[i], s[j])) {
      break;
    }
  }
  if (i <= j) {
    printf("NIE\n");
  } else {
    printf("TAK\n");
  }
}