배틀쉽

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

문제

당신은 정보 보안 회사의 직원이다. 최근 한 고객이 프로그램을 하나 개발했는데, 이 프로그램은 자기를 쓰는 쪽이 사람인지 프로그램인지 판정한다. 당신이 맡은 일은 이 프로그램의 성능을 시험하는 것이다.

시험에는 보드게임 배틀쉽의 변형판을 쓴다. 게임은 10×1010 \times 10 격자판에서 진행한다. 게임을 시작하기 전에 한 칸짜리 전함 4척, 두 칸짜리 전함 3척, 세 칸짜리 전함 2척, 네 칸짜리 전함 1척, 모두 10척의 우주 전함을 판 위에 배치해야 한다. 각 전함은 가로나 세로로 이어진 연속한 칸을 차지한다. 서로 다른 두 전함은 칸을 공유할 수 없고, 상하좌우로도 대각선으로도 맞닿을 수 없다.

배치를 마치면 여러 라운드에 걸쳐 시험을 진행한다. 각 라운드에는 칸 하나를 마음대로 골라 그 칸에 포를 쏠 수 있다. 어떤 전함이 차지한 칸이 모두 한 번 이상 맞으면 그 전함은 침몰한다. 전함 10척이 모두 침몰하면 게임이 끝난다.

게임의 복잡도는 게임이 끝날 때까지 진행된 라운드 수다. 사람이 게임을 하면 프로그램이 할 때보다 복잡도가 커진다고 보고, 당신은 복잡도가 최대로 커지는 경우를 미리 알아 두기로 했다.

포를 쏠 칸의 순서는 이미 정해 두었고, 같은 칸을 두 번 쏘지는 않는다. 이 순서가 주어질 때 복잡도를 가장 크게 만드는 판의 초기 상태를 구하라.

입력

열 개의 줄에 각각 열 개의 정수가 주어진다. 위에서 rr번째 줄의 왼쪽에서 cc번째 수는 rrcc열 칸을 몇 번째 라운드에 쏘는지를 나타내며, 1 이상 100 이하다.

같은 칸을 두 번 쏘지 않으므로 1부터 100까지의 수가 각각 한 번씩 나타난다.

출력

복잡도가 가장 커지는 판의 초기 상태를 열 줄에 걸쳐 출력한다. 빈 칸은 ., 전함이 놓인 칸은 #으로 나타낸다.

복잡도를 최대로 만드는 배치가 여러 가지라면, 열 줄을 위에서부터 차례로 이어 붙인 100글자 문자열이 사전순으로 가장 앞서는 것을 출력한다. 사전순을 비교할 때 #.보다 앞선다고 본다.