Lines

В таблице из $N$ строк и $N$ столбцов некоторые клетки заняты шариками, другие свободны. Выбран шарик, который нужно переместить, и место, куда его нужно переместить. Выбранный шарик за один шаг перемещается в соседнюю по горизонтали или вертикали свободную клетку. Требуется выяснить, возможно ли переместить шарик из начальной клетки в заданную, и, если возможно, то найти путь из наименьшего количества шагов.

Входные данные

В первой строке находится число $N$, в следующих $N$ строках - по $N$ символов. Символом точки обозначена свободная клетка, латинской заглавной $O$ - шарик, $@$ - исходное положение шарика, который должен двигаться, латинской заглавной $X$ - конечное положение шарика. 2 <= $N$ <= 40.

Выходные данные

В первой строке выводится $Y$, если движение возможно, или $N$, если нет. Если движение возможно, далее следует $N$ строк по $N$ символов - как и на вводе, но буква $X$, а также все точки по пути заменяются плюсами.

Примеры
Входные данные
2
@.
.X
Выходные данные
Y
@+
.+
Входные данные
2
@O
OX
Выходные данные
N

Задача на informatics