Problem:
ヘビ

ある世界には，文字だけでできた不思議なヘビが住んでいます。このヘビには現在A種とB種の2種類が確認されていますが、それ以外の種類がいる可能性もあります。

A種は，">'"の後に"="が1個以上並んだ後、"#"が来て、さらに前と同じ個数の"="が来た後、"~"（半角チルダ）で終わります。

B種は，">^"の後に "Q="が1個以上並んだ後、"~~"で終わります。

A種の例： >'====#====~ >'==#==~

B種の例： >^Q=Q=Q=Q=~~ >^Q=Q=~~

ヘビを文字列データとして受け取り、それがどんな種類であるかを判別して、A種の場合は「A」、B種の場合は「B」、それ以外の種類の場合は「NA」を出力するプログラムを作成してください。

Input

入力は以下の形式で与えられます。

n
S1
S2
:
Sn

1 行目に判別されるヘビの数 n（1 ≤ n ≤ 10000）、続く n 行に i 匹目のヘビを表す文字列 Si (200文字以下の、空白を含まない文字列) がそれぞれ１行に与えられます。

Output

i 行目に i 匹目のヘビの種類 A、B または NA を出力してください。

Sample Input

3
>'======#======~
>^Q=Q=Q=Q=Q=Q=Q=Q=Q=~~
>'===#====~

Output for the Sample Input

A
B
NA

Solution in JAVA (judge verdict: Wrong Answer)

import java.util.*;
import java.lang.*;
import java.io.*;

class Main{

    private static boolean snake_A(String snake)
    {
	if(snake.charAt(snake.length()-1) != '~')
	    return false;

	if(!snake.substring(0,2).equals(">'"))		
	    return false;

	if(snake.indexOf("#") == -1)
	    return false;


	if(snake.indexOf("#") > snake.indexOf("~"))
	    return false;

	if(snake.indexOf("#")-snake.indexOf("'") != snake.indexOf("~")-snake.indexOf("#"))
	    return false;

	int left,right;
	left = right = 0;
	for(int i=2;i<snake.indexOf("#");i++)
	    {
	
		if(snake.charAt(i) == '=')
		    left++;
		else 
		    {
			return false;
		    }
	    }

	for(int i=snake.indexOf("#")+1;i<snake.indexOf("~");i++)
	    {
	
		if(snake.charAt(i) == '=')
		    right++;
		else 
		    return false;
	    }	

	
	if(left != right)
	    return false;

	return true;
    }

    private static boolean snake_B(String snake)
    {

	if(!snake.substring(snake.length()-2,snake.length()).equals("~~"))
	    return false;

	if(!snake.substring(0,2).equals(">^"))
	    return false;

	int cnt = 0;
	for(int i=2;i<snake.indexOf("~");i+=2)
	    {
		if(snake.substring(i,i+2).equals("Q="))
		    cnt++;
		else 
		    return false;
	    }

	if(cnt < 1)
	    return false;
	
	return true;
    }


      public static void main(String args[])throws IOException{
	  //BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
	  Scanner in = new Scanner(System.in);
	  int n;
	  //	  n = Integer.parseInt(in.readLine());
	  n = in.nextInt();
	  while(n-- > 0)
	      {
		  //String snake = in.readLine();
		  String snake = in.next();
		  if(snake_A(snake))
		      {
			  System.out.println("A");
		      }
		  else if(snake_B(snake))
		      {
			  System.out.println("B");
		      }
		  else
		      {
			  System.out.println("NA");
		      }


	      }
      }

}