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.Scanner;
public class Main
{
	public static void main(String arg[])
	{
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		while(n-->0)
		{
			char ch[] = in.next().toCharArray();
			if(ch.length<6)
			{
				System.out.println("NA");
				continue;
			}
			int counta =0;
			int countb =0;
			boolean flag=false;
				if(ch[0]=='>'&&ch[1]=='\'' &&ch[ch.length-1]=='~')
				{
					int co=2;
					while(ch[co]!='#')
					{
						if(ch[co]=='=')
							counta++;
						co++;
						if(co==ch.length-1)
							break;
					}
					while(ch[co]!='~')
					{
						if(ch[co]=='=')
							countb++;
						co++;
					}
					if(counta==countb&&counta>0)
						System.out.println("A");
					else 
						System.out.println("NA");
					continue;
				}
				else
					if(ch[0]=='>'&&ch[1]=='^' &&ch[ch.length-1]=='~'&&ch[ch.length-2]=='~')
					{
						
						int co=2;
						while(ch[co]!='~')
						{
							if(ch[co]=='Q'&&ch[co+1]=='=')
								flag = true;
							else 
							{
								flag = false;
								break;
							}
							co+=2;
						}
					}
				System.out.println(flag==true ? "B":"NA");
			}
		}
	}