아름다운 직사각형

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

문제

세로 길이가 NN, 가로 길이가 MM인 직사각형이 있다. 이 직사각형을 넓이가 1인 정사각형 격자 N×MN \times M개로 나누는 선을 모두 긋는다. 각 격자에는 왼쪽 위에서 오른쪽 아래로 가는 대각선과 오른쪽 위에서 왼쪽 아래로 가는 대각선 중 하나를 그린다. 모든 격자에 대각선이 하나씩 그려진 직사각형을 올바른 직사각형이라고 한다.

이제 그림에 있는 모든 점, 즉 직사각형의 꼭짓점과 선분끼리 만나는 교점을 빨간색, 초록색, 파란색 중 한 가지로 칠한다. 선분으로 바로 이어진 두 점의 색이 항상 다르도록 모든 점을 칠할 수 있으면, 그 올바른 직사각형을 아름다운 직사각형이라고 한다.

홍준이는 아름다운 직사각형을 하나 가지고 있었는데, 옆에서 장난을 친 명우 때문에 일부 격자의 대각선이 지워졌다. 남아 있는 대각선을 모두 만족하는 아름다운 직사각형 중에서 사전순으로 가장 앞서는 것을 구하자.

사전순은 각 격자의 대각선을 맨 윗줄부터 한 줄씩, 한 줄 안에서는 왼쪽에서 오른쪽으로 읽어 만든 문자열로 비교한다. 대각선은 \/로 나타내고, /의 아스키 코드가 47, \의 아스키 코드가 92이므로 /\보다 사전순으로 앞선다.

입력

첫 줄에 세로 길이 NN과 가로 길이 MM이 주어진다. (1N,M501 \le N, M \le 50)

다음 NN개의 줄에는 각 줄마다 길이가 MM인 문자열이 주어진다. ii번째 줄의 jj번째 문자는 위에서 ii번째, 왼쪽에서 jj번째 격자에 남아 있는 대각선으로 \ 또는 /이다. 명우가 지운 격자는 ?로 주어진다.

출력

남아 있는 대각선을 모두 만족하는 아름다운 직사각형 중 사전순으로 가장 앞서는 것을 입력과 같은 형식으로 NN개의 줄에 출력한다. 그런 직사각형이 없으면 impossible을 출력한다.