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 main() {
  char a[19][3] = {{'A', 'A'}, {'b', 'd'}, {'d', 'b'}, {'H', 'H'}, {'I', 'I'},
                   {'M', 'M'}, {'O', 'O'}, {'o', 'o'}, {'p', 'q'}, {'q', 'p'},
                   {'T', 'T'}, {'U', 'U'}, {'V', 'V'}, {'v', 'v'}, {'W', 'W'},
                   {'w', 'w'}, {'X', 'X'}, {'x', 'x'}, {'Y', 'Y'}};
  char b[1001];
  cin >> b;
  int i, f = 1, j, m = strlen(b);
  for (i = 0; i < (m + 1) / 2; ++i) {
    for (j = 0; j < 19; j++)
      if (b[i] == a[j][0]) {
        if (b[m - 1 - i] != a[j][1]) {
          f = 0;
        }
        break;
      }
    if (f == 0 || j == 19) {
      f = 0;
      break;
    }
  }
  if (f == 1)
    cout << "TAK";
  else
    cout << "NIE";
  return 0;
}