Задача №115214. Посадка в самолет

В самолетах авиакомпании Битавиа кресла расположены в \(n\) рядов, при этом в каждом ряду по шесть мест, между третьим и четвертым местом находится проход. Некоторые пассажиры регистрируются заранее онлайн, другие пассажиры регистрируются на стойке регистрации в аэропорту.

При онлайн-регистрации пассажир может выбрать любое место и не может его затем менять. Например, при \(n = 6\) рассадка в самолете после онлайн-регистрации может выглядеть так (крестиками отмечены занятые места):

На стойку регистрации придут \(m\) пассажиров. По правилам Битавиа нужно рассадить их в самолете таким образом, чтобы итоговая рассадка в самолете была симметрична относительно прохода. То есть, если в некотором ряду на первом кресле сидит пассажир, то в том же ряду на шестом кресле тоже должен сидеть пассажир. То же самое справедливо для второго и пятого, третьего и четвертого кресел, соответственно. При этом пересаживать пассажиров, прошедших онлайн-регистрацию нельзя. В исходную рассадку, показанную на рисунке выше, можно добавить семь пассажиров, удовлетворив условие симметрии, например, следующим образом:

Вам дана рассадка пассажиров после онлайн-регистрации. Требуется рассадить \(m\) пассажиров так, чтобы итоговая рассадка в самолете была симметрична относительно прохода, или определить, что это невозможно.

Входные данные

В первой строке содержатся два целых числа \(n\) и \(m\) — количество рядов в самолете и количество пассажиров, которые придут на стойку регистрации (\(1 \le n \le 1000\), \(0 \le m \le 6000\)).

В следующих \(n\) строках задана изначальная рассадка в самолете после онлайн-регистрации. В каждой строке содержится по шесть символов, при этом \(i\)-й символ \(j\)-й строки равен « X » (заглавная английская X), если \(i\)-е место в \(j\)-м ряду уже занято и « . » (точка) иначе.

Выходные данные

Если искомой рассадки не существует, выведите « Impossible ».

Иначе выведите \(n\) строк по шесть символов — итоговую рассадку в самолете. При этом \(i\)-й символ \(j\)-й строки должен быть равен « X », если место занято, и « . », если свободно. Если существует несколько решений, разрешается вывести любое.

Система оценки

Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.

Подзадача Баллы Дополнительные ограничения Необходимые подзадачи Информация о проверке
1 15 \(m = 0\) первая ошибка
2 16 Изначально в самолете все места свободны первая ошибка
3 17 \(m = 1\) первая ошибка
4 18 Изначально в самолете занято ровно одно место первая ошибка
5 34 нет 1–4 первая ошибка

Примечание

Выше приведены пять примеров входных данных.

  1. В первом примере \(m = 0\), а рассадка в самолете симметрична, поэтому итоговая рассадка совпадает с исходной.

  2. Во втором примере есть только один способ рассадить пассажиров симметрично.

  3. В третьем примере существовало бы решение, при \(m = 1\), но при \(m = 2\) не существует способа рассадить всех пассажиров симметрично.

  4. В четвертом примере требуется рассадить больше пассажиров чем свободных мест в самолете.

  5. Пятый примере соответствует ситуации, рассмотренной на рисунках в тексте условия. В этом примере существует несколько решений, приведено одно из них.

Примеры
Входные данные
1 0
X.XX.X
Выходные данные
X.XX.X
Входные данные
2 1
X.XX.X
..X...
Выходные данные
X.XX.X
..XX..
Входные данные
3 2
X.XX.X
......
X..X.X
Выходные данные
Impossible
Входные данные
1 103
.X.XXX
Выходные данные
Impossible
Входные данные
6 7
X.....
......
....X.
X.....
......
..XX..
Выходные данные
XXXXXX
......
.X..X.
X....X
......
..XX..
Сдать: для сдачи задач необходимо войти в систему