璐神看岛屿
题号:NC14408
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

璐神现在有张n*m大小的地图,地图上标明了陆地(用"#"表示)和海洋(用"."表示),现在璐神要计算这张地图上岛屿的数量。
已知岛屿是由陆地的连通块组成,即一块陆地的上、下、左、右,左上,右上,左下,右下有其他陆地,则构成连通块,以此类推。
此外,岛屿的详细定义如下:
1、岛屿的周围必须全是海洋。
2、如果连通块有任意区域在地图边界,则该连通块不是岛屿

输入描述:

第1行输入两个整数n,m,代表地图的长和宽。
第2-n+1行,每行输入m个字符,字符为"#"表示陆地,为"."表示海洋。
数据保证:0<n,m≤200

输出描述:

输出一行整数,代表岛屿的数量。
示例1

输入

复制
3 3
...
.#.
...

输出

复制
1

说明

只有中间的1块陆地是岛屿,所以岛屿数=1
示例2

输入

复制
3 3
#..
.#.
...

输出

复制
0

说明

中间的连通块有区域在边界,所以不是岛屿,岛屿数=0。