“谁先醒来谁就能得到拖鞋”,有一句俄罗斯谚语这样说。然而,在我们的校园里,事情并没有那么简单。你不仅需要早起(否则所有的拖鞋都会被别人拿走),还必须遵守鞋柜的严格规定。
鞋柜看起来像一个 $n \times m$ 的网格。每个格子都放有一只拖鞋,要么是左脚的,要么是右脚的。最初,每只拖鞋都朝向四个方向之一:左、右、前或后。你可以选取任意一对相邻的拖鞋(不一定不同),并将其中一只顺时针旋转 $90^\circ$,另一只逆时针旋转 $90^\circ$。当你发现一对处于“自然位置”的拖鞋时,你可以穿上它们,然后开心地离开。
一对拖鞋处于“自然位置”的条件是: 它们所在的格子相邻; 它们朝向相同的方向; * 如果你沿着那个方向看这两个格子,其中一个格子在右侧,另一个在左侧。此外,右侧的格子中必须是右脚拖鞋,左侧的格子中必须是左脚拖鞋。
通俗地说,正常人可以自然地穿上这样的一对拖鞋。请参考“说明”部分获取示例。
假设每个人都是无私的,并且以最优方式行动,求出最多能有多少人可以穿上属于他们的拖鞋离开。
输入格式
输入的第一行包含两个整数 $n$ 和 $m$ ($1 \le n, m \le 100$),表示网格的尺寸。接下来的 $n$ 行,每行包含 $m$ 个以空格分隔的字符串,描述对应格子中的拖鞋。每只拖鞋由一个长度为 2 的字符串描述。第一个字符是 “L” 或 “R”,分别表示左脚拖鞋和右脚拖鞋。第二个字符是 “<”、“>”、“^” 或 “v” 之一,分别表示拖鞋最初朝向左、右、前或后。
输出格式
输出一个整数:可以形成的最大拖鞋对数。
样例
样例输入 1
2 2 R^ L> L< R^
样例输出 1
2
样例输入 2
3 2 L^ R^ R< L< L< R>
样例输出 2
2
说明
考虑第一个样例。首先,我们旋转两只左脚拖鞋:顶部的逆时针旋转,底部的顺时针旋转。其次,我们旋转两只顶部的拖鞋:左边的逆时针旋转,右边的顺时针旋转。之后,我们得到了两对处于自然位置的拖鞋:顶行两对和底行两对。
R^ L> R< L> Rv Lv L< R^ L^ R^ L^ R^
这是该样例中另一种可能的行动序列,导致了不同的最终画面:
R^ L> R< Lv R< L> L< R^ L< R^ L< R>