당신은 전설적인 해적 선장의 선원으로 위장하여 잠입한 첩자로, 선장과 선원들 사이에 오가는 짧은 암호문을 몰래 전달하고 있다. 당신의 임무는 이 암호를 풀어 원문을 복원하는 것이다.
메시지는 단순 치환 암호로 암호화되어 있다. 즉, 고정된 일대일 대응이 원문의 각 알파벳을 서로 다른 암호 알파벳으로 바꾼다. 치환 대상은 소문자 알파벳 26개뿐이며, 공백은 절대 암호화되지 않는다. 서로 다른 원문 글자는 항상 서로 다른 암호 글자로 바뀌고, 치환은 대칭적이지 않다. (예를 들어 'a'가 'h'로 암호화된다고 해서 'h'가 'a'로 암호화되는 것은 아니다.)
해적의 메시지에는 다음 12개의 흔한 단어가 자주 쓰인다는 것을 알고 있다.
be our rum will
dead hook ship blood
sable avenge parrot captain
암호문 한 줄이 주어질 때 원문을 복원하라. 복원이 가능한 것은, 다음 조건을 만족하는 복호화(암호 글자에서 원문 글자로의 일대일 대응)가 유일하게 존재할 때, 그리고 오직 그때뿐이다.
조건 2에 의해, 등장하는 알려진 단어들이 암호문의 모든 서로 다른 글자를 빠짐없이 사용해야 하므로 대응이 완전히 결정된다. 알려진 단어가 모두 등장할 필요는 없으며, 복호화된 텍스트에는 알려지지 않은 다른 단어가 포함될 수도 있다. 이러한 대응이 정확히 하나만 존재하면 복호화된 원문을 출력하고, 그렇지 않으면 텍스트를 유일하게 복호화할 수 없다.
한 줄에 암호문이 주어진다. 길이는 최대 200자이며, 각 문자는 소문자 알파벳('a'~'z') 또는 공백이다. 알파벳만 암호화되어 있고, 공백은 그대로 유지되어 단어를 구분한다.
위 규칙에 따라 텍스트를 유일하게 복호화할 수 있으면 복호화된 원문을 출력한다. 그렇지 않으면 Impossible을 출력한다.