#C24061103. 游乐园(happy.cpp)

游乐园(happy.cpp)

在一个游乐场里,有一个区域被划分为rrcc列的格子网格,每个格子用 (i,j)(i,j) 表示,表示的第 ii 行第 jj 列格子。

有一天,该区域突然被「遇到异性就会被感染」病毒感染,也就是说你只要遇到了异性,你就会被感染病毒,现在在网格区域内出现了NN个男生和MM个女生。

如果一个孩子位于格子 (i,j)(i,j) ,并且可以向上、下、左、右四个方向之一行动,而不经过「异性」(如果你是男生,不经过女生;如果你是女生,不经过男生)就可以离开网格区域,那么这个方向对于这个孩子就是一个「逃跑通道」。

我们定义一个孩子为「幸存者」,当且仅当这个孩子拥有至少三个「逃跑通道」。

image

例如,如图所示,绿色方格代表男孩,粉色方格代表女孩。位于 (2,2)(2,2) 的女孩,向上、下、左,都可以不经过男孩离开屏幕,共有三条「逃跑通道」因此,位于 (2,2)(2,2) 的女孩是「幸存者」。而位于 (4,4)(4,4) 的女孩,仅有左、右两条「逃跑通道」,因此 (4,4)(4,4) 的女孩不是「幸存者」。

现在,请根据网格区域内孩子的分布情况,计算一共有多少个「幸存者」?

输入格式

输入共 r+1r+1 行。

输入的第一行为四个整数 r,c,N,Mr,c,N,M

接下来 rr 行,每行 cc 个字符,第 ii 行第 jj 个字符 ki,jk_{i,j} 描述了网格 (i,j)(i,j) 的情况:

  • ki,jk_{i,j}.,则代表 (i,j)(i,j) 没有孩子。
  • ki,jk_{i,j}F,则代表 (i,j)(i,j) 为女孩。
  • ki,jk_{i,j}M,则代表 (i,j)(i,j) 为男孩。

输出格式

输出一行一个整数,代表「幸存者」的个数。

样例 #1

样例输入 #1

6 5 2 3
.....
.F.M.
.....
.F.F.
...M.
.....

样例输出 #1

3

提示

对于 20%20\% 的测试数据,1r,c30,N=01 \le r,c \le 30,N=0

对于 20%20\% 的测试数据,1r,c30,M=01 \le r,c \le 30,M=0

对于 100%100\% 的测试数据,1r,c5001 \le r,c \le 5000N,Mrc0 \le N,M \le r \cdot cki,jk_{i,j}.FM 中的一个。