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;
template <class T>
inline T bigmod(T b, T p, T M) {
  long long ret = 1;
  for (; p > 0; p >>= 1) {
    if (p & 1) ret = (ret * b) % M;
    b = (b * b) % M;
  }
  return (T)ret;
}
template <class T>
inline T lcm(T a, T b) {
  return (a * b) / __gcd(a, b);
}
int dx4[] = {-1, 0, 1, 0};
int dy4[] = {0, 1, 0, -1};
int dx8[] = {0, 0, 1, 1, 1, -1, -1, -1};
int dy8[] = {1, -1, -1, 0, 1, -1, 0, 1};
int kx8[] = {1, 1, 2, 2, -1, -1, -2, -2};
int ky8[] = {2, -2, 1, -1, 2, -2, 1, -1};
const double PI = acos(-1.0), EPS = 1e-7;
const long long INF = (long long)1e18 + 7;
const int N = 2e5 + 5, M = 1e9 + 7;
string s, t;
int ok[N];
char re[N];
void fun() {
  ok['A']++;
  re['A'] = 'A';
  ok['b']++;
  re['b'] = 'd';
  ok['d']++;
  re['d'] = 'b';
  ok['H']++;
  re['H'] = 'H';
  ok['I']++;
  re['I'] = 'I';
  ok['M']++;
  re['M'] = 'M';
  ok['O']++;
  re['O'] = 'O';
  ok['o']++;
  re['o'] = 'o';
  ok['p']++;
  re['p'] = 'q';
  ok['q']++;
  re['q'] = 'p';
  ok['T']++;
  re['T'] = 'T';
  ok['U']++;
  re['U'] = 'U';
  ok['V']++;
  re['V'] = 'V';
  ok['v']++;
  re['v'] = 'v';
  ok['W']++;
  re['W'] = 'W';
  ok['w']++;
  re['w'] = 'w';
  ok['X']++;
  re['X'] = 'X';
  ok['x']++;
  re['x'] = 'x';
  ok['Y']++;
  re['Y'] = 'Y';
}
int main() {
  fun();
  cin >> s;
  t = s;
  reverse(s.begin(), s.end());
  for (int i = 0; i < s.size(); i++) {
    if (ok[s[i]] && re[s[i]] == t[i])
      ;
    else {
      puts("NIE");
      return 0;
    }
  }
  puts("TAK");
  return 0;
}