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>
using namespace std;
int co[1000][2] = {{'A', 'A'}, {'b', 'd'}, {'H', 'H'}, {'I', 'I'}, {'M', 'M'},
                   {'o', 'o'}, {'O', 'O'}, {'q', 'p'}, {'T', 'T'}, {'U', 'U'},
                   {'V', 'V'}, {'v', 'v'}, {'W', 'W'}, {'w', 'w'}, {'X', 'X'},
                   {'x', 'x'}, {'Y', 'Y'}, {-1, -1}};
int mp[3000][3000] = {0};
int main() {
  int i;
  char s[10000];
  scanf("%s", s);
  int len = strlen(s);
  for (i = 0;; i++) {
    if (co[i][0] != -1) {
      mp[co[i][0]][co[i][1]] = mp[co[i][1]][co[i][0]] = 1;
    } else
      break;
  }
  int j;
  if (len % 2) {
    if (!mp[s[len / 2]][s[len / 2]]) {
      cout << "NIE" << endl;
      return 0;
    }
  }
  for (i = 0, j = len - 1; i < len / 2; i++, j--) {
    if (!mp[s[i]][s[j]]) {
      cout << "NIE" << endl;
      return 0;
    }
  }
  cout << "TAK" << endl;
}