Республиканская олимпиада по информатике 2017 года за 10 класс | Казахстанские олимпиады

Задача C. Саперы

Ограничение по времени Ограничение по памяти
2 секунды 256 мегабайт

Два сапера должны обезвредить все мины в минном поле. Поле представляет собой таблицу n×mn \times m (nn строк и mm столбцов), и в каждой клетке этой таблицы находится не больше одной мины. Строки таблицы пронумерованы от 11 до nn сверху вниз, столбцы пронумерованы от 11 до mm слева направо. Саперы хотят разделить все поле на двоих максимально справедливым образом, так чтобы части были равными (при каком-то повороте они должны совпасть) и разница в количестве мин в частях была минимальной. Делить можно только по границам клеток и части должны быть связными, т.е. из каждой клетки одной части можно дойти до любой другой клетки этой же части передвигаясь только по соседним по стороне клеткам одной части. Вам надо написать программу, которая будет делить поле на две части для саперов максимально справедливым образом. Гарантируется, что mm четное число.

Формат входного файла

Первая строка входных данных содержит два целых числа nn(1n10001\le n \le 1000) и m(1m1000)m(1 \le m \le 1000).

В каждой из следующих nn строк следуют по mm символов — описание поля. Если символ равен «.», то текущая клетка пустая. Если символ равен «*», то в этой клетке находится мина.

Формат выходного файла

Выведите nn строк по mm символов «1» или «2» обозначающее какому саперу достанется текущая клетка.

Примеры

Вход

5 8
**.....*
...*.*..
*..*....
*....*..
.......*

Выход

11111111
22222211
22112211
22111111
22222222