EduBrick

L. Игрушечный лабиринт

3000 мс · 256 МБ · всё или ничего

Лабиринт — прямоугольная коробка с препятствиями и отверстиями; внутри катается шарик. Лабиринт наклоняют влево, вправо, вверх или вниз, и шарик едет в этом направлении до ближайшего препятствия или стенки.

Если по пути шарик встречает отверстие, он проваливается — останавливаться в отверстии не обязательно.

Шарик начинает в левом верхнем углу. Найдите наименьшее число наклонов, чтобы он выпал.

Вершина здесь — клетка, в которой шарик остановился, а ребро — один наклон. Соседей всего четыре, и каждый вычисляется прокруткой до упора.

Формат ввода

Первая строка содержит числа NN и MM (1≤N,M≤1001 \le N, M \le 100).

Далее идут NN строк по MM чисел: 0 — свободно, 1 — препятствие, 2 — отверстие. Левый верхний угол свободен, и решение существует.

Формат вывода

Одно число — наименьшее количество наклонов.

Примеры

ввод
4 5
0 0 0 0 1
0 1 1 0 2
0 2 1 0 0
0 0 1 0 0
вывод
3
ввод
1 2
0 2
вывод
1
Войдите, чтобы отправлять решения.