#P5129. 「2018泉州夏令营提高组D3T3」树林

「2018泉州夏令营提高组D3T3」树林

Description

现在有一片树林,小B很想知道,最少需要多少步能围绕树林走一圈,最后回到起点.他能上下左右走,也能走对角线格子。

土地被分成R行C列(1≤R≤50,1≤C≤50),下面是一张样例的地图,其中“.”表示小B可以走的空地,"X"表示树林,"*”表示起点。而小B走的最近的路己经特别地用“+”表示出来。

. . . + . . .

. . + X + . .

. + X X X + .

. . + X X X +

. . + X . . +

. . . + + + *

题目保证,一定有合法解并且有且只有一片树林,树林一定是上下左右联通的。

Input Format

第1行输入R和C,接下来R行C列表示一张地图。地图中的符号如题干所述。

Output Format

输出最少的步数。

Sample

6 7 ....... ...X... ..XXX.. ...XXX. ...X... ......* 【样例输出】 13

Hint

对于40%的数据,R,C≤12。

对于60%的数据,R,C≤30。

对于100%的数据,R,C≤50。