오류 정정

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

문제

앨리스와 밥은 암호학 교재에 단골로 등장하는 인물입니다. 두 사람은 암호화 알고리즘을 정하고 키를 교환한 뒤, 암호화된 메시지(이하 메시지)를 주어진 통신 선로로 어떻게 주고받을지 고민하고 있습니다. 메시지는 영어 소문자를 나열한 것입니다. 두 사람은 이진 부호를 쓰기로 하고, 각 글자마다 어떤 비트열을 배정했습니다. 이때 비트열의 길이를 서로 같게 맞추지도 않았고, 어떤 비트열도 다른 비트열의 접두사가 되지 않는다는 조건도 두지 않았습니다. 그래서 부호화된 메시지가 항상 유일하게 복호화되지는 않을 수 있습니다. 다만 서로 다른 글자에 배정된 비트열은 모두 서로 다르다는 점은 보장됩니다. 부호화된 메시지의 비트열은, 그 메시지의 각 글자에 대응하는 비트열을 순서대로 이어 붙인 것입니다.

당신의 과제는 앨리스와 밥을 위해, 받은 비트열을 복호화하는 프로그램을 작성하는 것입니다. 메시지 MM이 비트열 BB대응한다는 것은, BBMM을 부호화한 비트열의 길이가 같고 서로 값이 다른 비트가 최대 하나(즉 많아야 한 자리에서만 값이 다름)인 경우를 뜻합니다. 어떤 비트열에 대응하는 메시지가 정확히 하나뿐이라면 그 메시지를 출력해야 합니다. 대응하는 메시지가 하나도 없거나 둘 이상이라면 그 사실을 알려야 합니다.

다음을 수행하는 프로그램을 작성하세요.

  • 표준 입력에서 각 글자에 대응하는 비트열들과, 복호화할 비트열들을 읽어 들입니다.
  • 각 비트열이 유일하게 복호화되는지 판정하고, 가능하다면 복호화합니다.
  • 결과를 표준 출력에 출력합니다.

입력

첫 줄에는 사용되는 글자의 개수를 나타내는 정수 nn (1n261 \le n \le 26)이 주어집니다. 이어지는 nn개의 줄에는 각각 영어 소문자 한 개, 공백 한 칸, 그리고 그 글자에 대응하는 비트열(0과 1로만 이루어지며 사이에 공백이 없음)이 주어집니다. 각 글자는 최대 한 번만 등장합니다. 비트열들의 길이 합은 150을 넘지 않습니다.

그다음 줄에는 복호화할 메시지의 개수를 나타내는 정수 mm (1m101 \le m \le 10)이 주어집니다. 이어지는 mm개의 줄에는 각각 복호화할 메시지가 하나씩 주어집니다. 각 메시지는 사이에 공백이 없는 0과 1의 나열이며, 길이는 10000을 넘지 않습니다.

출력

각 메시지의 복호화 결과를 입력에 주어진 순서대로 표준 출력에 출력합니다.

  • 주어진 비트열에 대응하는 메시지가 하나도 없으면, 한 줄에 BLAD를 출력합니다.
  • 대응하는 메시지가 둘 이상이면, 한 줄에 ZBYT WIELE를 출력합니다.
  • 대응하는 메시지가 정확히 하나뿐이면, 한 줄에 OK를 출력하고 그다음 줄에 복호화된 메시지를 출력합니다.