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() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  long long n, i, x;
  string ch, st = "AHIMOoTUVvWwXxY", st2 = "SZzsaBCcDEeFfGghiJjKkLlmNnPQRrtuy";
  char a = 'p', b = 'q', c = 'd', d = 'b';
  cin >> ch;
  n = ch.size();
  if (n & 1 && (st.find(ch[n / 2]) == string::npos)) {
    cout << "NIE";
    return 0;
  }
  for (i = 0; i < n / 2; i++) {
    if (st.find(ch[i]) == string::npos) {
      if (st2.find(ch[i]) != string::npos) {
        cout << "NIE";
        return 0;
      } else if (ch[i] == a && ch[n - 1 - i] != b ||
                 ch[n - i - 1] != a && ch[i] == b ||
                 ch[i] == c && ch[n - 1 - i] != d ||
                 ch[n - 1 - i] != c && ch[i] == d) {
        cout << "NIE";
        return 0;
      }
    } else {
      if (ch[i] != ch[n - 1 - i]) {
        cout << "NIE";
        return 0;
      }
    }
  }
  cout << "TAK";
  return 0;
}