세로 길이가 N, 가로 길이가 M인 직사각형이 있다. 이 직사각형을 넓이가 1인 정사각형 격자 N×M개로 나누는 선을 모두 긋는다. 각 격자에는 왼쪽 위에서 오른쪽 아래로 가는 대각선과 오른쪽 위에서 왼쪽 아래로 가는 대각선 중 하나를 그린다. 모든 격자에 대각선이 하나씩 그려진 직사각형을 올바른 직사각형이라고 한다.
이제 그림에 있는 모든 점, 즉 직사각형의 꼭짓점과 선분끼리 만나는 교점을 빨간색, 초록색, 파란색 중 한 가지로 칠한다. 선분으로 바로 이어진 두 점의 색이 항상 다르도록 모든 점을 칠할 수 있으면, 그 올바른 직사각형을 아름다운 직사각형이라고 한다.
홍준이는 아름다운 직사각형을 하나 가지고 있었는데, 옆에서 장난을 친 명우 때문에 일부 격자의 대각선이 지워졌다. 남아 있는 대각선을 모두 만족하는 아름다운 직사각형 중에서 사전순으로 가장 앞서는 것을 구하자.
사전순은 각 격자의 대각선을 맨 윗줄부터 한 줄씩, 한 줄 안에서는 왼쪽에서 오른쪽으로 읽어 만든 문자열로 비교한다. 대각선은 \와 /로 나타내고, /의 아스키 코드가 47, \의 아스키 코드가 92이므로 /가 \보다 사전순으로 앞선다.
첫 줄에 세로 길이 N과 가로 길이 M이 주어진다. (1≤N,M≤50)
다음 N개의 줄에는 각 줄마다 길이가 M인 문자열이 주어진다. i번째 줄의 j번째 문자는 위에서 i번째, 왼쪽에서 j번째 격자에 남아 있는 대각선으로 \ 또는 /이다. 명우가 지운 격자는 ?로 주어진다.
남아 있는 대각선을 모두 만족하는 아름다운 직사각형 중 사전순으로 가장 앞서는 것을 입력과 같은 형식으로 N개의 줄에 출력한다. 그런 직사각형이 없으면 impossible을 출력한다.