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

import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;

class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());

        for (int i = 0; i < n; i++) {
            String res = "NA";
            String sna = br.readLine();

            if (sna.length() < 6) {
                System.out.println(res);
                continue;
            }

            if (sna.startsWith(">\'")) {
                sna = sna.substring(2);
                if (sna.startsWith("=")) {
                    int eq1 = 0;
                    for (char c : sna.toCharArray()) {
                        if (c == '=')
                            eq1++;
                        else
                            break;
                    }
                    sna = sna.substring(eq1);
                    if (sna.startsWith("#")) {
                        sna = sna.substring(1);
                        int eq2 = 0;
                        for (char c : sna.toCharArray()) {
                            if (c == '=')
                                eq2++;
                            else
                                break;
                        }

                        if (eq1 == eq2) {
                            sna = sna.substring(eq2);
                            if (sna.equals("~")) {
                                res = "A";
                            }
                        }
                    }
                }
            } else if (sna.startsWith(">^")) {
                sna = sna.substring(2);
                int q = 0;
                while (sna.startsWith("Q=")) {
                    sna = sna.substring(2);
                    q++;
                }
                if (q > 0) {
                    if (sna.equals("~~")) {
                        res = "B";
                    }
                }
            }

            System.out.println(res);
        }
    }
}