#include <vector>
#include <algorithm>
#include <string>
#include <map>
#include <set>
#include <queue>
#include <cstring>
#include <deque>
#include <cstdio>
#include <cmath>

using namespace std;

#define reep(i,f,t) for(int i=f ; i<int(t) ; ++i)
#define rep(i,n) reep(i, 0, n) 

typedef vector<int> vi;
typedef vector<vi> vvi;
typedef pair<int,int> pii;

bool isA(const char* str)
{
	int n = strlen(str);
	if(n<6) return false;
	if(str[0]!='>' || str[1]!='\'') return false;
	
	int cnt, i;
	for(cnt=0, i=2; i<n && str[i]=='='; ++cnt, ++i);
	if(cnt==0 || i>=n || str[i] != '#') return false;
	++i;
	
	int s;
	for(s=0; i<n && str[i]=='='; ++s, ++i);
	if(cnt!=s || i+1!=n) return false;
	
	return str[i] == '~';
}

bool isB(const char* str)
{
	int n = strlen(str);
	if(n<6) return false;
	if(str[0]!='>' || str[1]!='^') return false;
	
	int i;
	for(i=2; i+1<n && str[i]=='Q' && str[i+1]=='='; i+=2);
	if(i==2 || i+2!=n) return false;
	
	return str[i]=='~' && str[i+1] == '~';
}

int main()
{
	int n;
	scanf("%d", &n);
	rep(i, n){
		char str[256];
		scanf("%s", str);
		if(isA(str))
			puts("A");
		else if(isB(str))
			puts("B");
		else
			puts("NA");
	}
	
	return 0;
}