레오나르도의 노트

시간 제한1초메모리 제한128 MB

문제

— 방금 레오나르도의 비밀 노트를 샀어!

희귀품 수집가 스탠 어커는 잔뜩 들떠 있었지만, 그의 친구인 특별 수사관 세라 켑틱은 시큰둥했다.

— 그게 진짜인지 어떻게 알아?

— 아, 이 가격이면 진짜일 수밖에 없어. 게다가 다빈치 암호로 쓰여 있다고.

세라는 몇 페이지를 훑어보았다. 이 암호가 알파벳의 각 글자를 다른 글자로 바꾸는 치환 암호(substitution cipher)라는 것은 그녀에게 분명해 보였다.

— 레오나르도라면 평문을 써 놓고 암호화는 조수에게 맡겼을 거야. 그리고 사용할 치환 알파벳도 함께 알려 줬겠지. 운이 좋으면 뒤표지에서 찾을 수 있을지도 몰라!

그녀가 마지막 페이지를 넘기자, 놀랍게도 알파벳 26글자가 한 줄로 적혀 있었다.

QWERTYUIOPASDFGHJKLZXCVBNM

— 이건 평문의 각 A를 Q로, 각 B를 W로 바꾸라는 레오나르도의 지시일지도 몰라. 어디 보자…

실망스럽게도, 두 사람은 이내 이것이 책에 사용된 치환일 수 없다는 것을 깨달았다. 그때 스탠의 표정이 갑자기 밝아졌다.

— 어쩌면 레오나르도가 마지막 페이지에 정말로 치환 알파벳을 적어 두었는데, 조수가 실수로 그 줄까지 책의 나머지 부분과 똑같은 방식으로 암호화해 버린 걸지도 몰라. 그러니까 지금 우리가 보는 이 줄은, 보통의 알파벳에 어떤 치환을 두 번 적용한 결과라는 거지!

세라는 노트북을 꺼내 몇 분 동안 맹렬하게 코딩했다. 그러고는 안쓰러운 표정으로 스탠을 돌아보았다.

— 아니야, 그것도 아니야. 안됐지만 자네 또 속은 것 같아, 친구. 십중팔구 이 책은 가짜야.

알파벳의 치환 하나가 주어졌을 때, 그것이 어떤 치환을 두 번 적용한 결과일 수 있는지 판정하는 프로그램을 작성하라.

입력

첫 줄에는 테스트 케이스의 수를 나타내는 양의 정수가 주어진다(최대 500). 이어서 각 테스트 케이스마다 한 줄에 영어 대문자 26개의 치환이 하나씩 주어진다.

출력

각 테스트 케이스마다, 주어진 치환이 원래 알파벳 문자열 ABC...XYZ에 어떤 치환을 두 번 적용하여 얻을 수 있으면 Yes를, 그렇지 않으면 No를 한 줄에 출력한다.