U526622 「莲梅」 错身巷

题目背景

梅莉得了花吐病。

题目描述

花吐症。 游手好闲的网络分子编造出来的玩笑话,此刻却在自己身上以一种诡异的方式成了真。 【暗恋一个人以致思念成疾,此世仅存的唯一治疗方法便是深爱之人充满爱意的吻。】 如同童话的病症,仿若儿戏的治疗方式。 老实说自己并不该忽视这个病症,按照都市传说的版本,这是一个会致人死亡的绝症。 梅莉把全身重量放置在洗手台上,像一条濒死的鱼一样喘息着,耳边传来的是手机不断有信息传来的叮咚声。 湛蓝的世界里仿佛只剩下自己和身边的人,各式各样奇形怪状的鱼从面前游过,自己也不认识这些鱼的门纲目科属种,只是感觉它们也只是在本能的驱使下游动着,没有自己的思想,也没有任何的被观赏的自觉。 直到发送键被按下后她才任由着手机滑落到地上,砸出咚的一声闷响,鼻尖萦绕的是腻人的花香和让人感到反胃的铁锈味,肺部刚从近乎宕机的状态恢复过来,大脑因为缺氧而在耳边不断发出嗡嗡的蜂鸣,胃部和食道残留的反胃感令自己忍不住皱眉,但最为艰难的时刻已经缓了过去,她进入了短暂的宁静时刻。 ... “梅莉同学知道吗?每和你见一次面我仿佛就经历了一场心灵的地震,一场轰轰烈烈地一见钟情,虽然事后我对于这一份震感毫无知觉,但至少当下,我感受得到爱意。” 莲子长久地沉默着,抬头看着阴沉的天空,淡淡地飘忽地开了口 “邻国的南方有种特别窄的小巷,叫错身巷,小巷很细很细,只能容一个人走过,如果你走进了巷子之后忽然发现对面有个人迎面而来,你要是不想退出去,那么和她错身而过的瞬间,两个人得背贴着墙,胸贴着胸,这时候你的眼睛只能看着她,她也只能看着你,世界虽然很大但那你们的视线无处安放,我与你曾在那里相遇,相对,错过,直到再无踪迹。” 有些相遇就如同相逢在错身巷一般,梅莉看向泪水滑过脸颊的莲子,她的眼神中盛满了迷茫与不知所措 我们之间的相遇就是在这错身巷中,在那一瞬间,我们彼此之间的距离好像是世界上最接近的,我和你在错身的那一刻长久地对视,我的目光描摹着你的发丝,你的眼,你的鼻,你的嘴,你的每一寸,好像我们是世界上最亲密的两个人。 给定一个 $N \times M$ 的迷宫,其中: * `'.'` 表示可以通行的空地。 * `'#'` 表示障碍物,无法通行。 * `'M'` 表示梅莉的起始位置。 * `'L'` 表示莲子的位置。 梅莉只能上下左右四个方向移动,每移动一格距离为 1。 你的任务是找到一条从梅莉到莲子的最短路径,并输出路径的长度。如果无法到达莲子的位置,则输出 `-1`。 **特殊规则:错身巷** 迷宫中存在着一些特殊的区域,被称为“错身巷”。错身巷由连续的空地组成,且**长度大于等于 3**,并且**只有一个入口和一个出口**(入口和出口也算作错身巷的一部分)。 例如: ``` ..#.. M.L.. ..#.. ``` 在上面的例子中,中间三格 `.` 构成一个错身巷。 **当梅莉进入错身巷后,她只能沿着错身巷的方向一直前进,直到到达错身巷的出口才能改变方向。** 你可以认为在错身巷内部移动时,梅莉只能沿着一个方向移动,到达出口前不能进行转向等操作。如果出口为障碍或者超出边界,则该方向的错身巷路径无效。 例如,对于上面的例子,如果梅莉向右移动,她会直接到达 `L` 的位置,步数为 1。如果梅莉向上移动,她会到达第一行的 `.`,步数为 1,之后只能继续向上移动,但由于上一步已经超出边界,因此向上移动的路径无效,梅莉无法向上移动。 **注意:入口和出口也算作错身巷的一部分,但在计算路径长度时,只计算实际走过的格数。**

输入格式

第一行包含两个整数 $N$ 和 $M$,$2 \le N, M \le 1000$,表示迷宫的行数和列数。 接下来 $N$ 行,每行包含 $M$ 个字符,表示迷宫的布局。

输出格式

输出一个整数,表示从梅莉到莲子的最短路径长度。如果无法到达,则输出 `-1`。

说明/提示

参考 [【MyGO!!!!!/Ansy】 错身巷](https://ivy5538004.lofter.com/post/7406cc63_2ba2ec287).