회문과 거울 문자열

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

일반적인 회문(palindrome)은 앞에서 읽으나 뒤에서 읽으나 똑같은 숫자 또는 문자로 이루어진 문자열이다. 예를 들어 문자열 "ABCDEDCBA"는 왼쪽에서 오른쪽으로 읽을 때와 오른쪽에서 왼쪽으로 읽을 때가 서로 같으므로 회문이다.

거울 문자열(mirrored string)은, 문자열의 각 문자를 그 거울상(거울에 비친 모습, 아래 표 참고)으로 바꾼 뒤 문자열을 거꾸로 읽었을 때 원래 문자열과 같아지는 문자열이다. 예를 들어 "3AIAE"는 거울 문자열이다. "A"와 "I"는 자기 자신이 거울상이고, "3"과 "E"는 서로의 거울상이기 때문이다.

거울 회문(mirrored palindrome)은 일반 회문의 조건과 거울 문자열의 조건을 동시에 만족하는 문자열이다. 예를 들어 "ATOYOTA"는 거울 회문이다. 거꾸로 읽어도 원래 문자열과 같고, 각 문자를 거울상으로 바꾼 뒤 거꾸로 읽어도 원래 문자열과 같기 때문이다. 물론 "A", "T", "O", "Y"는 모두 자기 자신이 거울상이다.

유효한 문자와 그 거울상의 전체 목록은 다음과 같다. 거울상이 없는 문자는 칸을 비워 두었다.

문자거울상문자거울상문자거울상
AAMMYY
BNZ5
COO11
DP2S
E3Q3E
FR4
GS25Z
HHTT6
IIUU7
JLVV88
KWW9
LJXX

※ 0(숫자 0)과 O(알파벳 O)는 같은 문자로 취급하므로, 유효한 문자는 알파벳 "O"뿐이다.

입력

입력은 여러 개의 문자열로 이루어지며 한 줄에 하나씩 주어진다. 각 문자열은 1개 이상 20개 이하의 유효한 문자로 이루어진다. 어떤 문자열에도 유효하지 않은 문자는 포함되지 않는다. 프로그램은 입력의 끝(EOF)까지 읽어야 한다.

출력

각 입력 문자열마다 그 문자열을 1열부터 출력하고, 바로 이어서 아래 네 가지 문구 중 정확히 하나를 출력한다.

  • 회문도 아니고 거울 문자열도 아니면: -- is not a palindrome.
  • 회문이지만 거울 문자열은 아니면: -- is a palindrome.
  • 거울 문자열이지만 회문은 아니면: -- is a mirrored string.
  • 회문이면서 동시에 거울 문자열이면: -- is a mirrored palindrome.

즉, 출력의 각 줄은 <문자열> -- <문구> 형태이다. 서로 이웃한 두 출력 줄 사이에는 빈 줄을 하나씩 넣는다.