1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
'''
1. 슬림프: 길이가 2글자면 AH일 것. 3글자 이상이면 AB+슬림프+C 또는 A+슬럼프+C일 것.
   슬럼프: D 또는 E로 시작하고, 그 뒤에 F가 1회 이상 붙으며, 그 다음으로 또 다른 슬럼프가 오거나 G가 올 것.
   어떤 문자열이 '슬림프 + 슬럼프'의 형식으로 이루어져 있는지 검사하는 문제.

2. 슬림프인지 여부는 재귀호출과 슬라이싱으로 간단하게 구현 가능하다.
   얼핏 보면 슬럼프인지 여부 또한 재귀호출로 검사해야만 하는 것처럼 보이는데, 사실 슬럼프의 정의를 잘 보면
   결국 슬럼프는 '/[DE]F+/가 1회 이상 반복되고 G로 끝나는 문자열'을 뜻한다는 사실을 알 수 있다.
   '재귀호출로 구현할 수 있으면 바로 구현한다'라고 생각하고 바로 구현에 들어갈 게 아니라, 조금 더 고민해서
   재귀호출을 하지 않고 간단한 반복문만으로도 풀리는 코드를 찾을 수 있다는 걸 생각해야 한다.
'''


import re

def isSlump(line):
    return re.match('([DE]F+)+G$', line)

def isSlimp(line):
    if len(line) == 2: return line == "AH"
    elif len(line) > 2:
        if line[:2] == 'AB' and line[-1] == 'C': return isSlimp(line[2:-1])
        elif line[0] == 'A' and line[-1] == 'C': return isSlump(line[1:-1])
    return False

print("SLURPYS OUTPUT")
for _ in range(int(input())):
    line = input()
    c_pos = line.rfind('C')
    if c_pos == -1: c_pos = 1
    str1 = line[:c_pos+1]
    str2 = line[c_pos+1:]
    print("YES" if isSlimp(str1) and isSlump(str2) else "NO")
print("END OF OUTPUT")