Ковпачок
Нудьгуючи на одному з уроків, відмінник Петро П’яточкін придумав собі розвагу. Він замалював ручкою деякі клітинки прямокутного аркуша, вирваного з зошита, зняв із ручки ковпачок та поставив його на одну з зафарбованих клітин. Далі Петрик послідовно переставляє ковпачок з одної замальованої клітинки на іншу замальовану клітинку, яка міститься в тому ж рядку або в тому ж стовпчику, що і попередня. Петрик вибрав деяку зафарбовану клітину й хоче перемістити туди ковпачок із початкової клітини за якомога меншу кількість ходів.
Напишіть програму, що за даними про розміри аркуша паперу, конфігурацію зафарбованих клітин, розміщення ковпачка та цільової клітини знайде найменшу можливу кількість переставлянь, за які Петрик зможе перемістити ковпачок з початкової клітини до цільової, керуючись придуманими ним правилами.
Вхідні дані
У першому рядку записано два цілих числа: кількість рядків N і кількість стовпчиків M клітинок (2 ≤ M ≤ N ≤ 1000), із яких складається аркуш. Кожен із наступних N рядків містить по M символів:
x (маленька літера латинського алфавіту) - зафарбована клітина.
. (крапка) - порожня клітина.
o (маленька літера латинського алфавіту) - початкова клітина.
+ (плюс) - цільова клітина.
У вхідних даних задано рівно одну початкову та рівно одну цільову клітину.
Вихідні дані
Вивести одне число - найменшу кількість переміщень ковпачка, які потрібно зробити Петрику задля досягнення мети. Якщо ж відповідно до заданих правил не можна досягти цільової клітини, то потрібно вивести -1.