만다라트 만들기

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

문제

우주는 만다라트를 활용하여 새해 계획표를 만들기로 했다.

만다라트는 3x3 행렬을 가로로 3개, 세로로 3개씩 배치해 9x9 행렬로 만든 표이다. 만다라트를 만들기 위해서는 먼저 아래와 같이 목표를 만들어야 한다.

  • 최종 목표를 1개 만든다.
  • 최종 목표를 이루기 위해서 도움이 되는 중간 목표를 8개 만든다.
  • 각각의 중간 목표를 이루는데 도움이 되는 세부 목표를 8개씩 만든다.

이 목표들을 가지고 만다라트를 만드는 방법은 다음과 같다.

  1. 9x9 행렬을 3x3 행렬 9개로 구분한다.
  2. 9x9 행렬에서 중앙에 위치하는 3x3 행렬을 채운다. 최종 목표는 행렬의 가장 가운데에 작성하고, 중간 목표 8개는 나머지 8칸에 하나씩 작성한다.
  3. 중앙 3x3 행렬을 제외하고 나머지 3x3 행렬의 가운데에 중간 목표를 다시 적는다. 단, 중앙에 위치하는 3x3 행렬내에서 중간 목표가 위치하는 방향과 9x9 행렬 내에서 같은 중간 목표가 작성된 3x3 행렬이 위치하는 방향은 동일해야 한다. 예를 들어, 중앙 3x3 행렬 내에서 "건강"이라는 중간 목표를 최종 목표의 우상단에 작성했다면, "건강"을 중심으로 하는 3x3 행렬은 9x9 행렬 내에서 우상단에 위치해야 한다.
  4. 3x3 행렬의 빈칸들을 세부 목표로 채운다. 중심에 쓰인 중간 목표를 이루는 데 도움이 되는 세부 목표 8개를 8칸에 하나씩 작성한다.

아래는 완성된 만다라트의 예시이다.

하지만 아무도 우주의 계획표를 알아보지 못했고, 우주는 만다라트를 쉽게 풀어서 써주기로 했다. 쉽게 쓰인 계획표는 이렇게 만들어진다. 먼저 중간 목표를 하나 출력하고, 그 아래로 8개의 세부 목표를 출력한다. 이를 8번 반복하여 8개의 중간 목표와 그 아래의 세부 목표들을 모두 출력한다. 이 때, 중간 목표끼리는 사전순으로 정렬되어 있어야 하며, 중간 목표 아래의 세부 목표 8개도 사전순으로 정렬되어 있어야 한다. 목표 a가 목표 b보다 사전순으로 앞에 오는 경우는 다음과 같다.

  • 숫자가 알파벳보다 사전순으로 빠르다.
  • 알파벳 대문자가 알파벳 소문자보다 사전순으로 빠르다.
  • 길이가 i인 목표와 길이가 i+1인 목표가 존재하며 두 목표의 0~i번째 인덱스까지의 문자가 동일한 경우, 길이 i인 목표가 사전순으로 빠르다. 예를 들어서, 목표 "ab"가 목표 "abc"보다 사전순으로 빠르다.

입력

9줄에 걸쳐 9x9 크기의 만다라트가 주어진다. 유효한 만다라트만이 주어지며, 유효한 만다라트의 조건은 아래와 같다.

  • 9x9 행렬의 중심 3x3 행렬이 최종 목표와 중간 목표를 이룬다.
  • 중심 3x3 행렬에서 중간 목표가 쓰인 방향과 나머지 3x3 행렬에서 중간 목표가 쓰인 방향은 일치한다.
  • 같은 목표는 두 번 주어지지 않는다. 단, 중간 목표는 행렬에서 총 2번씩 등장한다.

모든 목표는 영문 소문자 및 대문자와 숫자로 구성되고, 길이는 각각 100을 넘지 않는다. 서로 다른 목표는 공백으로 구분되며, 한 목표 내에서 공백이 사용되는 경우는 없다.

출력

1번째 줄에는 “#x. “를 출력한 다음, 사전순으로 가장 먼저 오는 중간 목표를 출력한다. 숫자가 알파벳보다 사전순으로 먼저 오고, 알파벳 대문자가 알파벳 소문자보다 사전순으로 먼저 온다. 2번째 줄부터 아래 8줄에는 “#x-y. ”를 출력한 다음, 사전순으로 정렬된 세부 목표를 순서대로 출력한다. 이렇게 중간 목표 1줄과 세부 목표 8줄을 번갈아 출력하는 과정을 8번 반복한다. x와 y는 1부터 시작하여 하나씩 증가한다

최종 목표는 출력하지 않는다.