검은 타일을 한 번씩 뒤집으면 모든 타일이 흰색이 되도록 자유 타일을 채우고, 사전순으로 가장 앞서는 결과를 출력하거나 불가능을 보고한다.
어려움8수학그리디비트 연산구현아직 제출이 없습니다시간 제한1초메모리 제한512 MB지구이에게는 신기한 게임판이 있다. 이 게임판에는 한 면이 검은색, 다른 한 면이 흰색으로 칠해진 타일이 N행 N열로 놓여 있다. 각 타일은 제자리에서 뒤집을 수 있는데, 타일 하나를 뒤집으면 그 타일과 상하좌우로 인접한 타일도 같이 뒤집힌다. 지구이는 타일이 무작위로 놓인 게임판에서 타일을 적당히 뒤집어 모든 타일이 흰색 면을 위로 향하게 만드는 놀이를 좋아한다.

어느 날 지구이가 게임판을 가지고 놀다가 자리를 비운 사이에 동생이 이 게임판을 발견했다. 동생은 놀이의 규칙을 모르기 때문에, 그냥 처음 상태에서 검은색 면이 위를 향하고 있던 타일을 전부 한 번씩 뒤집어 보았다. 그러자 놀랍게도 모든 타일이 흰색 면을 위로 향하게 되었다.

돌아온 지구이는 동생에게 놀이의 규칙을 알려 주려고 했지만, 그 전에 동생이 즐거워하는 모습을 더 보고 싶어져서 같은 성질을 갖는 게임판을 몇 번 더 만들어 주기로 했다. 지구이는 멋진 해커라서 게임판의 규칙을 따르지 않고 원하는 타일만 따로 뒤집어 원하는 색 배치를 만들 수 있다. 하지만 아무 조건 없이 타일을 뒤집는 것은 별로 재미가 없어서, 지구이는 게임판에서 몇 개의 타일은 뒤집지 않고 나머지만 뒤집어 원하는 배치를 만들어 보기로 했다.
첫째 줄에 게임판의 크기 N(1 ≤ N ≤ 1000)이 주어진다.
둘째 줄부터 N개의 줄에 걸쳐 게임판의 타일 상태를 나타내는 N글자의 문자열이 주어진다. 문자열은 #와 ., -로만 이루어져 있다. #는 검은색 면이 위를 향하도록 고정된 타일, .는 흰색 면이 위를 향하도록 고정된 타일, -는 지구이가 마음대로 뒤집을 수 있는 타일을 뜻한다.
동생이 검은색 면이 위를 향하고 있는 타일을 전부 한 번씩 뒤집었을 때 모든 타일이 흰색 면을 위로 향하게 되는 게임판의 모양을 N개의 줄에 출력한다. 입력과 마찬가지로 검은색 면이 위를 향하고 있는 타일은 #, 흰색 면이 위를 향하고 있는 타일은 .로 나타낸다. 고정된 타일은 입력에 주어진 색 그대로 두어야 한다.
답이 여러 가지일 경우, 게임판을 첫째 줄부터 마지막 줄까지, 각 줄은 왼쪽에서 오른쪽으로 이어 붙인 길이 N2의 문자열이 사전순으로 가장 앞서는 것을 출력한다. 이때 .가 #보다 앞선다고 본다.
답이 존재하지 않을 경우 thinking_face를 출력한다.