1971 最少水滴数


Submit solution

Points: 100
Time limit: 1.0s
Memory limit: 32M

Problem types
Allowed languages
C, C++, Java, Python

Description

在一个a*b的坐标区域内分布着一些水滴,水滴分大小二种,大水滴上如果滴入水滴,水滴就会爆裂,并分别向上、下、左、右四个方向直飞出去。飞散的水滴若撞上小水滴,则吸附在一起且不再飞散;若撞到大水滴,则引其爆裂,并继续按原方向直飞;如果飞出坐标区域,则水滴消失。爆裂水滴位置不再有水滴。 现在给你一滴水,由你选择滴在矩阵区域内的某个位置,求滴下水后区域内可能存在的最少水滴数。

Input

有多组数据,每组数据由长a和宽b(0≤a,b≤1000)后跟a*b个数字构成。数字只出现0,1,2这三种,表示矩阵区域中某坐标上无水滴、小水滴、大水滴的情况。如果a,b同时为0,则输入结束。

Output

对应每组数据,输出滴下一滴水后,区域内可能的最少水滴数。

Sample

Input

5 5
10210
02000
12122
01110
21121
5 5
10022
22001
00200
02000
12202
0 0

Output

15
7

Source: qn


Comments

There are no comments at the moment.