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 JAVA):

Solution:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;


public class Solution {
	
	// A A | b d | H H | I I | M M | O O | o o | p q | T T | U U | V V | v v | W W | w w
	// X X | x x | Y Y |
	
	static HashSet<String> spool = new HashSet<>();
	
	public static boolean check(String s){
		
		int n = s.length();
		int i = 0, j = n-1;
		while(i<=j){
			
			//System.out.println(s.charAt(i) + "" + s.charAt(j) );
			
			if(!spool.contains(s.charAt(i) + "" + s.charAt(j) ))
				return false;
			
			i++; j--;
		}
		
		return true;
	}

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		spool.add("AA"); spool.add("bd"); spool.add("db"); spool.add("HH"); spool.add("II"); spool.add("MM"); 
		spool.add("OO"); spool.add("oo"); spool.add("pq"); spool.add("qp"); spool.add("TT"); spool.add("UU");  
		spool.add("VV"); spool.add("vv"); spool.add("XX"); spool.add("xx"); spool.add("YY"); spool.add("WW"); 
		spool.add("ww");
		
		String input = br.readLine();
		
		if(check(input))
			System.out.println("TAK");
		else
			System.out.println("NIE");
	}
}