洪水漫灌

题目描述

Y 同学的家乡最近遭遇了罕见的洪水,整个城镇都被水淹没了。幸运的是,城镇的某些关键区域建造了坚固的围墙。

我们可以将城镇的俯视图抽象为一个 XXYY 列的网格图。网格中的每一个格子只可能是以下两种状态之一:

  • * 表示该格子建有围墙,洪水无法穿过围墙。
  • 0 表示该格子是普通的空地或重要建筑区域。

当洪水来袭时,水会从网格图的边界(最外面一圈)涌入,并在空地(即 0)中蔓延。如果两块空地在上下左右四个方向上相邻,洪水就可以从其中一块流向另一块。 但是,如果有被围墙 * 在四个方向上完全封闭起来的空地,洪水是无法流进去的,这些区域将安全地避开洪水。

Y 同学想知道,在这场洪水中,到底有多少个 0 格子(即未建围墙的区域)没有被洪水淹没。

输入格式

第一行包含两个正整数 XXYY,分别表示网格的行数和列数。 接下来 XX 行,每行包含一个长度为 YY 的字符串,由 *0 组成,表示城镇的平面图。

输出格式

输出一行一个整数,表示没有被水淹没的 0 的数量。

样例

样例输入 #1

4 5
00000
00*00
0*0*0
00*00

样例输出 #1

1

样例输入 #2

5 5
*****
*0*0*
**0**
*0*0*
*****

样例输出 #2

5

数据范围与约定

对于 100%100\% 的数据,保证 1X,Y5001 \le X, Y \le 500

子任务编号 分值 X,YX, Y \le 特殊性质
1 30 5050
2 70 500500