"Мінімізація поворотів"
Розглянемо карту лабіринту у вигляді прямокутника, заповнену нулями та одиницями, у якій "0" позначає вільне місце, а "1" - стінку.
Спочатку робот знаходиться у комірці з координатами (i_0, j_0). Йому необхідно вибратись з лабіринту (через вільні комірки у довільну сторону). Робот може рухатись у довільну з чотирьох сусідніх вільних комірок (наліво, направо, вгору та вниз). Відмінна риса робота полягає у тому, що він може швидко долати багато вільних комірок у одному напрямку, проте кожен поворот (зміна напрямку) вимагає багато часу.
Напишіть програяму, яка допоможе роботу вибратись з лабіринту, здійснивши при цьому найменшу кількість поворотів.
Вхідні дані
Перший рядок містить два цілих числа N, M (5 ≤ N,_{ }M ≤ 640), які задають розмір лабіринту. Кожен з наступних N рядків містить у точності M одиниць і/або нулів (без відокремлювачів), які позначають стіни і вільні комірки. Наступний і останній рядок містить два цілих числа i_0, j_0 (2 ≤ i_{0 }≤ N–1, 2 ≤ j_{0 }≤ M–1) - початкові координати робота. Гарантується, що початкові координати належать порожній комірці, проте не відомо, чи існує вихід.
Вихідні дані
Вивести одне число - найменшу кількість однонаправлених ділянок на шаляху назовні. Якщо виходу з лабіринту не існує, то вивести "–1" (без лапок).