5157: 成熟的蔬菜
Description
Jerry 家n*m的方格地里长了各种各样的蔬菜(不同的蔬菜用不同的大写字母表示),可是很多蔬菜却还没有成熟。如果一棵蔬菜已经成熟的话,会长得很大,至少会占两个格子,两颗相同的蔬菜相邻(上下左右)则被认为是同一棵蔬菜!Jerry只吃已经成熟的蔬菜,每当Jerry吃掉一颗蔬菜,原来的格子上都会长满杂草(用’#’表示)。Jerry每天不停的吃,现在它地里的蔬菜已经所剩不多了!不过Jerry觉得能吃就是最幸福的事!Jerry想知道,在这些剩下的蔬菜中,有几种蔬菜已经可以吃了呢?
输入:
输入文件名为fullgrown.in。
第一行:两个整数n和m,中间用空格隔开(3<=n,m<=100)。
接下来是一个n行m列,由大字母和’#’组成的矩阵。
输出:
输出文件名为fullgrown.out。
输出一行,一个整数(成熟蔬菜的种数)。
样例1:
输入:
3 5
# A # # #
# A # B B
# # C # A
输出:
2
样例1解释:
样例1中存在2棵成熟的蔬菜:
第一棵是A:
#
|
A
|
#
|
#
|
#
|
#
|
A
|
#
|
B
|
B
|
#
|
#
|
C
|
#
|
A
|
第二棵是B:
#
|
A
|
#
|
#
|
#
|
#
|
A
|
#
|
B
|
B
|
#
|
#
|
C
|
#
|
A
|
样例2:
输入:
5 5
# D # # #
D D # A #
# D A A #
# C C E C
# # B # #
输出:3
样例2解释:
样例2中存在3棵成熟的蔬菜:
第一棵是D:
#
|
D
|
#
|
#
|
#
|
D
|
D
|
#
|
A
|
#
|
#
|
D
|
A
|
A
|
#
|
#
|
C
|
C
|
E
|
C
|
#
|
#
|
B
|
#
|
#
|
第二棵是A:
#
|
D
|
#
|
#
|
#
|
D
|
D
|
#
|
A
|
#
|
#
|
D
|
A
|
A
|
#
|
#
|
C
|
C
|
E
|
C
|
#
|
#
|
B
|
#
|
#
|
第三棵是C:
#
|
D
|
#
|
#
|
#
|
D
|
D
|
#
|
A
|
#
|
#
|
D
|
A
|
A
|
#
|
#
|
C
|
C
|
E
|
C
|
#
|
#
|
B
|
#
|
#
|
【数据规模与约定】
100% 的数据,保证3<=n,m<=100。
注意:程序名保存为fullgrown.cpp