编程题
### 问题描述
小怂喜欢收集水洼中的水,他每到一个水量不为零的小水洼中就会收集里面的所有水。
小怂去到了一个大小为 $N \times M$ 的水洼上,水洼上的每一块小水洼水量为 $a_{i,j} \left( i \in \left[ 1, n \right], j \in \left[ 1, m \right] \right)$。假设小怂的起始点是 $\left( 1, 1 \right)$,他可以移动无数次,每次移动只能移动到当前水洼上下左右四个方向的相邻小水洼上,并且需要满足相邻小水洼水量大于 $0$,即如果新的小水洼水量为零,小怂就不能走到这个小水洼上。特别地,小怂可以重复走到某块小水洼,但是小水洼中的水只能被收集一次;如果起始点的水洼中有水,他会收集那些水。
值得注意的是:每块上下左右相连且水量不为 $0$ 的小水洼会合成一块大水洼,小怂每到一块新的大水洼,他之前收集到的水量会变为 $0$。
求解小怂在大水洼中可以收集到的最大水量。
### 输入格式
第一行是两个整数 $N, M$,分别表示行数、列数。
接下来 $N$ 行,每行包含 $M$ 个整数,每个整数表示当前位置的小水洼的水量。
数据范围保证:$1 \leq N, M \leq 100$,$1 \leq a_{i, j} \leq 10^6$, $\left( 数据不保证起始点不为0 \right)$。
### 输出格式
输出共 $1$ 行,一个整数,表示小怂在水洼中可以收集到的最大水量。
### 样例输入
```plaintext
3 3
1 2 0
3 4 0
0 0 5
```
### 样例输出
```plaintext
10
```
### 样例解释
由题意得,样例中有两个大水洼。
第一个大水洼由 $\left( 1, 1 \right)$, $\left( 1, 2 \right)$, $\left( 2, 1 \right)$, $\left( 2, 2 \right)$ 四个小水洼组成,水量总和为 $10$。
第二个大水洼由 $\left( 3, 3 \right)$ 一个小水洼组成,水量总和为 $5$。
因此小怂在大水洼中可以获得的最大水量是 $10$。