P1913 L 国的战斗之伞兵

题目背景

L 国即将与 I 国发动战争!! 为了在敌国渗透作战,指挥官决定:派出伞兵前往敌国!然而敌国的风十分强烈,能让伞兵在同一高度不停转悠,直到被刮到一个无风区……(可怜的小兵)

题目描述

I 国的领土是一个 $n \times m$ 的矩形,每个格子都有自己的风向。 当一个伞兵位于从某个格子时,根据该格子上的风向描述符,某些事情将会发生: |风向描述符|将会发生的事情| |:-:|:-:| |`u`|伞兵向上移动一格| |`d`|伞兵向下移动一格| |`l`|伞兵向左移动一格| |`r`|伞兵向右移动一格| |`o`|伞兵空降成功| |`x`|伞兵空降失败| **我们默认 I 国领土以外区域的风向描述符均为 `x`。** 现在,指挥官在 $n \times m$ 个格子上各投放了一个伞兵,问最终有多少个伞兵空降成功(也就是说,在经过**有限次**移动后能够来到一个风向描述符为 `o` 的格子)。

输入格式

第一行两个正整数 $n,m\ (1 \leq n,m \leq 1000)$。 以下 $n$ 行,每行 $m$ 个字符,表示每个格子的风向描述符。 **保证输入中只会出现 `u/d/l/r/o`,不会出现 `x`。**

输出格式

一个数:表示有几个点可以放下伞兵。

说明/提示

样例解释: 投放于第一行的 $5$ 个伞兵最终会移动到 I 国领土以外的区域,因此空降失败。 投放于第二行第五列的 $1$ 个伞兵同理。 剩下的 $5 \times 5-5-1=19$ 个伞兵都能成功空降。