내용 기반 스팸 필터를 피하기 위해 스패머들은 메시지의 글자를 바꿔 자동 필터가 알아보지 못하게 만든다. 대문자로만 이루어진 평문 문자열 s에 대해, 각 글자를 아래의 "스팸 알파벳" 코드로 바꿔 만든 문자열을 Φ(s)라고 하자.
A -> 4
B -> |3
C -> (
D -> |)
E -> 3
F -> |=
G -> 6
H -> #
I -> |
J -> _|
K -> |<
L -> |_
M -> |\/|
N -> |\|
O -> 0
P -> |0
Q -> (,)
R -> |?
S -> 5
T -> 7
U -> |_|
V -> \/
W -> \/\/
X -> ><
Y -> -/
Z -> 2
이 규칙에서 평문 메시지 s는 정확히 하나의 인코딩 결과 Φ(s)에 대응된다. 하지만 그 반대는 성립하지 않는다. 하나의 인코딩 결과는 서로 다른 여러 평문 메시지에서 나올 수 있다. 예를 들어 U의 코드 |_|는 L 다음에 I가 오는 경우(|_ + |)로도 똑같이 만들어진다.
평문 메시지 s가 주어질 때, 스팸 인코딩 결과가 Φ(s)와 같은 서로 다른 평문 메시지가 몇 개인지 구하라.
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 1자 이상 100자 이하의 대문자로만 이루어진 평문 문자열 s가 한 줄에 주어진다. 입력의 끝은 end라는 단어만 있는 한 줄로 나타내며, 이 줄은 테스트 케이스가 아니다.
각 테스트 케이스마다, 스팸 인코딩 결과가 Φ(s)와 같은 서로 다른 평문 메시지의 개수(s 자신 포함)를 한 줄에 하나씩 출력한다. 이 개수는 1,000,000,000 이하임이 보장된다.
BU의 인코딩은 |3|_|이다. 이 인코딩을 갖는 평문 메시지 6개는 BU, IEU, BIJ, IEIJ, BLI, IELI이다.
UJ의 인코딩은 |_|_|이다. 이 인코딩을 갖는 평문 메시지 5개는 UJ, LU, IJJ, LLI, LIJ이다.