狼 Vjekoslav 正在逃离一群嗜血的猎人。猎人们很聪明,躲在树后。Vjekoslav 知道这一点,但不知道他们具体躲在哪些树后。他想逃回自己舒适、文明的小屋(与猎人们相当野蛮的巢穴相反,是的,我在这里支持这只狼),并尽可能远离所有的树木。
森林可以表示为一个 $N \times M$ 的网格。我们用 . 表示空草地,用 + 表示中间有树的区域,用 V 表示 Vjekoslav 当前的位置,用 J 表示他小屋的位置。Vjekoslav 可以从当前区域向东、南、西、北四个方向的相邻区域移动,即使该区域包含一棵树。
如果 Vjekoslav 站在网格的第 $R$ 行第 $C$ 列,而某棵树位于第 $A$ 行第 $B$ 列,那么 Vjekoslav 与该树之间的距离为:
$$|R-A| + |C-B|$$
帮助 Vjekoslav 找到一条通往他小屋的最佳路线。最佳路线是指在任何时刻,Vjekoslav 与所有树木之间的最小距离的最大化的路线。
注意,Vjekoslav 的小屋并没有占据整个区域,因此该区域也必须包含在路线中。
输入格式
输入格式如下:
- 第一行包含两个整数 $N$ 和 $M$ ($1 \le N, M \le 500$),表示网格的行数和列数。
- 接下来的 $N$ 行,每行包含 $M$ 个字符,字符为
.、+、V或J。 - 输入中将恰好包含一个字符
V和一个字符J,且至少包含一个字符+。
输出格式
输出一个整数,表示最优路线中与树木的最小距离。
样例
输入样例 1
4 4 +... .... .... V..J
输出样例 1
3
输入样例 2
4 5 ..... .+++. .+.+. V+.J+
输出样例 2
0