你正在计划一次漂流旅行。地形可以看作一个网格。每个单元格要么是陆地,要么是河流的一部分,河流向北、南、东或西四个方向之一流动。一些陆地单元格包含观光点。
你可以选择任何河流单元格作为漂流旅行的起点。一旦你的木筏到达一个河流单元格(包括起点),它将沿着该单元格的水流方向移动到相邻单元格,或者离开网格。
如果你的木筏到达了与某个观光点相邻的河流单元格(包括起点),你就可以参观该观光点。(单元格的相邻关系包括水平和垂直方向的邻居,不包括对角线方向的邻居。)每个观光点最多只能参观一次。
当你的木筏移动到陆地单元格、离开网格,或进入之前已经到达过的河流单元格时,你的漂流旅行就会停止。注意,如果木筏最终停在陆地单元格上,你无法参观与该陆地单元格相邻的观光点。
如果你能最优地选择起点,那么在单次漂流旅行中你能参观的观光点数量最大是多少?
第一个样例的示意图。最优的漂流旅行从带有木筏的单元格开始,参观了 4 个观光点(用双筒望远镜标记)。旅行中经过的河流单元格以深蓝色高亮显示。
输入格式
第一行包含两个整数 $r$ 和 $c$ ($2 \leq r, c \leq 500$);地形网格有 $r$ 行和 $c$ 列。
接下来的 $r$ 行,每行包含 $c$ 个字符,描述地形网格的一行。点 . 表示没有观光点的陆地单元格。井号 # 表示包含观光点的陆地单元格。河流单元格分别用 ^(北)、v(南)、>(东)或 <(西)表示。网格中至少有一个河流单元格。
输出格式
输出一行,包含一个整数,即在单次漂流旅行中你能参观的观光点数量的最大值。
样例
样例输入 1
5 6 v<<<#v v#v<.> >>v<<< ..v##^ #<<<.^
样例输出 1
4
样例输入 2
4 5 >v<<. ^<..# #...# .#>^#
样例输出 2
2