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 C# (judge verdict: Wrong Answer)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            StringBuilder sb = new StringBuilder();

            int n = int.Parse(Console.ReadLine());

            while (n-- > 0)
            {
                string input = Console.ReadLine().Trim();

                if (input[0] != '>')
                {
                    sb.AppendLine("NA");
                    continue;
                }

                switch (input[1])
                {
                    case '\'':
                        int idx = 2, count = 0;

                        while (input[idx] == '=' && idx < input.Length)
                        {
                            count++;
                            idx++;
                        }

                        string temp = new string(Enumerable.Repeat('=', count).ToArray());
                        string makeA = ">'" + temp + "#" + temp + "~";

                        if (input == makeA) sb.AppendLine("A");
                        else sb.AppendLine("NA");
                        break;
                    case '^':
                        int vol = input.Length / 2 - 2;

                        string makeB = ">^";

                        for (int i = 0; i < vol; i++)
                        {
                            makeB += "Q=";
                        }
                        makeB += "~~";

                        if (input == makeB) sb.AppendLine("B");
                        else sb.AppendLine("NA");
                        break;
                    default:
                        sb.AppendLine("NA");
                        break;
                }
            }
            Console.Write(sb);
        }
    }
}