잘못된 안도감

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

문제

프레디는 훨씬 큰 콜리플라워를 키우는 방법을 새로 알아냈다. 동료 정원사 토미에게 이 방법을 넘기고 싶지만 다른 사람이 훔쳐 가는 것은 막고 싶다. 그래서 두 사람은 M. E. Ohaver가 제안한 간단한 암호화 기법을 쓰기로 했다.

이 기법은 모스 부호를 바탕으로 한다. 모스 부호는 문자마다 길이가 다른 점과 선의 나열로 글자를 적는다. 알파벳 대문자 26개의 부호는 다음과 같다.

문자부호문자부호문자부호문자부호
A.-H....O---V...-
B-...I..P.--.W.--
C-.-.J.---Q--.-X-..-
D-..K-.-R.-.Y-.--
E.L.-..S...Z--..
F..-.M--T-
G--.N-.U..-

길이가 4인 조합은 모두 열여섯 가지인데, 실제 모스 부호는 그중 네 가지를 쓰지 않는다. 이 문제에서는 남은 네 가지에 아래 문자를 배정한다. 실제 모스 부호의 배정은 아니다.

문자부호
_ 밑줄..--
, 쉼표.-.-
. 마침표---.
? 물음표----

메시지에서 문자와 문자 사이는 짧은 쉼으로 구분하고 보통 공백으로 적는다. 그래서 ACM_GREATER_NY_REGION은 이렇게 나간다.

.- -.-. -- ..-- --. .-. . .- - . .-. ..-- -. -.-- ..-- .-. . --. .. --- -.

Ohaver의 방식은 문자 사이의 쉼을 지워 모스 부호를 망가뜨린다. 쉼에는 실제로 정보가 담겨 있다. 모스 부호는 길이가 일정하지 않고 접두 부호도 아니기 때문이다. 쉼을 지운 .--.-.-- 하나만 놓고 보면 ACM, AKW, ANY를 비롯해 108가지 글로 읽힌다. 그래서 이 방식은 점과 선 옆에 각 문자의 부호 길이를 한 자리씩 적은 숫자열을 함께 남긴다. .--.-.-- 242라고 적으면 읽는 방법이 다시 하나로 정해진다.

암호화와 복호화는 똑같은 세 단계를 밟는다.

  1. 글을 쉼 없는 모스 부호로 바꾸고, 부호 길이를 적은 숫자열을 만든다.
  2. 숫자열을 뒤집는다.
  3. 뒤집은 숫자열을 부호 길이로 삼아 점과 선을 자르고, 잘린 조각을 다시 글자로 바꾼다.

암호문 AKADTOF_IBOETATUK_IJN에 이 단계를 밟아 보자. 1단계는 다음을 만든다.

.--.-.--..----..-...--..-...---.-.--..--.-..--...----. 232313442431121334242

2단계에서 숫자열을 뒤집는다.

242433121134244313232

같은 점과 선을 이 길이로 다시 자르면 ACM_GREATER_NY_REGION이 나온다.

이 방식은 그리 안전하지 않지만 프레디는 이만하면 됐다고 여긴다. 프레디를 대신해 이 알고리즘을 구현하라.

입력

입력은 Ohaver의 알고리즘으로 암호화한 메시지 여러 개로 이루어지고, 한 줄에 하나씩 주어진다. 메시지에는 알파벳 대문자 26개와 밑줄, 쉼표, 마침표, 물음표만 나온다. 메시지 하나의 길이는 1000자를 넘지 않는다. 입력은 파일의 끝에서 끝난다.

출력

입력의 메시지마다 복호화한 결과를 한 줄에 하나씩 출력한다.