eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Ковпачок

Ковпачок

Нудьгуючи на одному з уроків, відмінник Петро П’яточкін придумав собі розвагу. Він замалював ручкою деякі клітинки прямокутного аркуша, вирваного з зошита, зняв із ручки ковпачок та поставив його на одну з зафарбованих клітин. Далі Петрик послідовно переставляє ковпачок з одної замальованої клітинки на іншу замальовану клітинку, яка міститься в тому ж рядку або в тому ж стовпчику, що і попередня. Петрик вибрав деяку зафарбовану клітину й хоче перемістити туди ковпачок із початкової клітини за якомога меншу кількість ходів. Напишіть програму, що за даними про розміри аркуша паперу, конфігурацію зафарбованих клітин, розміщення ковпачка та цільової клітини знайде найменшу можливу кількість переставлянь, за які Петрик зможе перемістити ковпачок з початкової клітини до цільової, керуючись придуманими ним правилами. \InputFile У першому рядку записано два цілих числа: кількість рядків \textbf{N }і кількість стовпчиків \textbf{M }клітинок (\textbf{2 }≤ \textbf{M }≤ \textbf{N }≤ \textbf{1000}), із яких складається аркуш. Кожен із наступних \textbf{N }рядків містить по \textbf{M }символів: \begin{enumerate} \item \textbf{x} (маленька літера латинського алфавіту) - зафарбована клітина. \item \textbf{.} (крапка) - порожня клітина. \item \textbf{o} (маленька літера латинського алфавіту) - початкова клітина. \item \textbf{+} (плюс) - цільова клітина. \end{enumerate} У вхідних даних задано рівно одну початкову та рівно одну цільову клітину. \OutputFile Вивести одне число - найменшу кількість переміщень ковпачка, які потрібно зробити Петрику задля досягнення мети. Якщо ж відповідно до заданих правил не можна досягти цільової клітини, то потрібно вивести \textbf{-1}.
Ліміт часу 0.3 секунд
Ліміт використання пам'яті 256 MiB
Вхідні дані #1
3 2
x+
xx
o.
Вихідні дані #1
2
Автор Данило Мисак
Джерело 2013 XXVI Всеукраїнська олімпіада з інформатики, Луганськ, Березень 17 - 21, тур 2