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[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        while (n-- > 0) {
            String snake = sc.next();
            if (snake.indexOf('#') > 0 && snake.charAt(0) == '>' && snake.charAt(1) == '\'' && snake.charAt(snake.length() - 1) == '~') {
                String[] l = snake.split("#");
                if (l[0].length() - 1 == l[1].length() && l[0].length() + l[1].length() + 1 == snake.length()) {
                    System.out.println("A");
                } else {
                    System.out.println("NA");
                }
            } else if (snake.charAt(0) == '>' && snake.charAt(1) == '^' && snake.charAt(snake.length() - 2) == '~' && snake.charAt(snake.length() - 1) == '~' && snake.replaceAll("Q=", "").equals(">^~~")) {
                System.out.println("B");
            } else {
                System.out.println("NA");
            }
        }
    }
}