# 影像之结构化特征

## 题目描述

在影像比对中，有一种方法是利用影像中的边缘（edge）信息，计算每个边缘资讯中具有代表性的结构化特征，以作为比对两张影像是否相似的判断标准。Water-filling 方法是从每个边缘图的一个端点开始，绕着相连的边缘点走并依序编号。若走到某一步时，遇到一个以上不同的连接点，则分成不同路径同时继续走，直到没有任何连接点为止。如果一个点和另一个点为上下左右相邻，就称为连接。

例如，在图 $1$ 的影像中包含三个边缘图，每个边缘图由一些互相连接的边缘点构成。图中以黑色的方块代表边缘点，白色的方块代表背景。在 Water-filling 方法中，首先，从第一行（row）开始，由左至右，由上至下，先找到第一个黑点并编号为 $1$。接着，找 $1$ 的下一个尚未编号的连接点并编号为 $2$。依此方法继续往下一个点前进依次编号。在编号 $6$ 的点之后有两个尚未编号的连接点，此时，则分为两条路线，并同时编号为 $7$ 继续往下走。当走到没有任何的相连点时，则结束现有边缘图的编号，并继续对影像中的其它边缘图编号。走完图 $1$ 所有边缘图后所得到的编号如图 $2$ 所示。所以，走完这三个边缘图所需要的步数分别为 $12$、 $7$ 及 $3$；所以，$12$、$7$ 及 $3$ 可以作为代表此张影像的结构化特征。请注意：位于斜对角上的两点不能算做连接，如：

![](https://cdn.luogu.com.cn/upload/pic/704.png)

请写一个程序计算每个影像中，以 Water-filling 方法走完其中所有的边缘图后，将每个边缘图需走的步数依走访的顺序列出。

## 输入格式

输入文件包含一个正方形的影像。每组影像以图的宽度 $n$ 开头 $(l \le n \le 1000)$。接下来的 $n$ 行代表影像的内容：$0$ 表示背景的白点，$1$ 表示黑色的边缘点。

## 输出格式

对每一个输入的影像，以 Water-filling 方法走完所有的边缘图后，先印出此张影像中共有几个边缘图。接着，将每个边缘图需走的步数按升序列出。

## 样例 #1

### 样例输入 #1

```
10 
0000000000 
0011110000 
0000010000 
0011111000 
0010110100 
0010010110 
0011110010 
0100010010 
0100000110 
0100000000
```

### 样例输出 #1

```
3 
3 
7 
12
```