eolymp
bolt
Try our new interface for solving problems
Problems

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

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

Игрушечный лабиринт представляет собой прозрачную плоскую прямоугольную коробочку, внутри которой есть препятствия и перемещается шарик. Коробку можно наклонять вправо, влево, к себе или от себя, после каждого наклона шарик перемещается в заданном направлении до ближайшего препятствия или до стенки лабиринта, после чего останавливается. Целью игры является загнать шарик в одно из специальных отверстий-выходов. Шарик проваливается в отверстие, если оно встречается на его пути (шарик не обязан останавливаться в отверстии). Первоначально шарик находится в левом верхнем углу лабиринта. Гарантируется, что решение существует и левый верхний угол не занят препятствием или отверстием. \InputFile В первой строке входного файла записаны числа \textbf{N} и \textbf{M} - размеры лабиринта (целые положительные числа, не превышающие \textbf{100}). Затем идёт \textbf{N} строк по \textbf{M} чисел в каждой - описание лабиринта. Число \textbf{0} в описании обозначает свободное место, число \textbf{1} - препятствие, число \textbf{2} - отверстие. Например, лабиринту, изображённому на рисунке, будет соответствовать такое описание: \includegraphics{https://static.e-olymp.com/content/3e/3e5ac8c2b5b51a4aea0dd9ef550403ae075baff1.jpg} \OutputFile Выведите единственное число - минимальное количество наклонов, которые необходимо сделать, чтобы шарик покинул лабиринт через одно из отверстий.
Time limit 1 second
Memory limit 64 MiB
Input example #1
4 5
0 0 0 0 1
0 1 1 0 2
0 2 1 0 0
0 0 1 0 0
Output example #1
3