아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Налеее-во!

시간 제한2초메모리 제한1024 MB

요약
N×M 격자에 장애물이 있고, 세 칸을 차지하는 T자 모양 병사가 좌회전, 우회전, 180도 회전, 전진 명령을 받을 때 목표 자세까지 최소 명령 수를 구한다.
난이도

보통10점 중 6점

유형
BFS, 그래프, 시뮬레이션
정답자
아직 제출이 없습니다

문제

Одним погожим деньком на плацу проходили учения. Если точнее, то шла отработка тактически важных строевых приемов: команд <<направо>>, <<налево>>, <<кругом>> и <<шаг вперед>>. Стояла пятиградусная жара, и солдаты скучали, в отличии от работника спецслужб потенциального врага, прибывшего на плац с целью оценки боевой готовности войск.

Разведчика звали Смит, и трудился он в поте лица, делая снимки настолько часто, что буквально через три часа у него закончилась пленка. Проклиная себя за безалаберность, он покинул место проведения учений и вернулся лишь через 2828 минут 1212 секунд, захватив на этот раз с собой все снаряжение.

Внимательно изучив обстановку, Смит понял, что за прошедшее время лишь один солдат сменил свое месторасположение. Поскольку ему не хочется признаваться в провале, он решил провернуть пару интриг и списать в конечном счете нехватку снимков на пожар в одной из африканских деревень. Смит --- парень изворотливый, и такого рода вещи для него не составляют труда. Единственное, что осталось узнать --- двигались ли за время его отсутствия другие солдаты, ведь они могли просто вернуться на свое место в ходе сложного тактического маневра. Кроме того, начальство может спросить, сколько команд было отдано в тот интервал времени, что не отражен на пленке.

Теперь перед Смитом стоит задача: узнать, за какое минимальное число команд солдат мог переместиться из одной позиции в другую. Для наглядности, представим плац прямоугольным полем размера N⋅MN \cdot M, а солдата на нем --- фигурой, занимающей три подряд идущие смежные клетки. Далее проиллюстрировано выполнение команд.

Команда <<налево>>
......  ......
......  ...\..
..\-/.  ...|..
......  .../..
......  ......
Команда <<направо>>
......  ......
......  .../..
..\-/.  ...|..
......  ...\..
......  ......
Команда <<кругом>>
.......  .......
...\-/.  .../-\.
.......  .......
.......  .......
Команда <<шаг вперед>>
.......  ...\-/.
...\-/.  .......
.......  .......
.......  .......

Вам, как человеку проверенному, поручено войти в доверие к Смиту, решив для него эту задачу.

입력

В первой строке входного файла содержатся два целых числа NN и MM (1≤N,M≤1001 \le N, M \le 100). Далее следуют NN строк по MM символов каждая --- описание исходного положения солдата на плаце. Формат описания аналогичен примерам выше. Символом <<*>> задаются препятствия --- клетки, занимать которые солдат в процессе своего перемещения не может --- так Смит обозначил других солдат и противопехотные мины.

Далее в аналогичном формате следует описание конечное положение солдата. Гарантируется, что все препятствия остались на своих местах.

출력

В выходной файл выведите минимальное количество команд, которое необходимо отдать солдату, чтобы он переместился из начального положения в конечное. Если же такое перемещение невозможно, выведите в выходной файл число <<−1-1>>.

예제2

  1. 예제 1

    입력
    4 7
    .......
    .......
    .../-\.
    .......
    ...\-/.
    .......
    .......
    .......
    
    예상 출력
    3
    
  2. 예제 2

    입력
    4 7
    .......
    *******
    .../-\.
    .......
    ...\-/.
    *******
    .......
    .......
    
    예상 출력
    -1