Автор: | Жюри ВКОШП 2010 | Ограничение времени: | 2 сек | |
Входной файл: | parking.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | parking.out |
Джон работает на огромной парковке. Парковка представляется собой прямоугольное поле n × m, разбитое на n × m квадратных позиций размера 1 × 1. Одну из угловых позиций занимает выезд с парковки.
Машин на парковке много и вывести машину не так уж просто. Единственное, что Джон может сделать — это переместить один из автомобилей на соседнюю позицию, если она свободна. Соседними считаются позиции, имеющие общую сторону. Однако задача усложняется наличием на парковке столбов. На позиции, где стоят столбы, нельзя поставить машину. Парковка вся занята машинами и столбами и единственное свободное место — выезд с парковки. Задача Джона — вывести с парковки один из автомобилей. Помогите ему узнать, какое минимальное число действий ему придется совершить.
В первой строке входного файла два целых числа n и m (1 ≤ n, m ≤ 50) — размеры парковки. Далее следуют n строк по m символов в каждой. Символ "." означает пустую позицию, единственная пустая позиция — выезд с парковки. Символ "#" означает столб. Столбы нельзя перемещать и на место столба нельзя ставить автомобили. Символ "c" означает автомобиль. Символ "X" — автомобиль, который необходимо вывести с парковки. Автомобиль считается выведенным, как только он достигает выезда с парковки. Гарантируется, что хотя бы одно из чисел n, m больше единицы и каждый из символов "." и "X" встречается во входном файле ровно один раз. Символ "." всегда располагается в верхнем левом углу парковки.
Если машину вывести невозможно, выведите в выходной файл единственное слово "Impossible". Иначе в единственной строке выведите единственное число — минимальное количество действий для вывода автомобиля.
№ | Входной файл (parking.in ) |
Выходной файл (parking.out ) |
---|---|---|
1 |
|
|
2 |
|
|