给定一个 $N \times M$ 的矩阵,你的任务是使用最少的水量将所有单元格填满。
根据《我的世界》(Minecraft)的规则,如果一个单元格为空,且其至少有两个相邻的单元格(相邻指共享一条边)已被水填满,那么该单元格也会被水填满。
注水过程会持续进行,直到没有空单元格满足“至少有两个相邻单元格已被水填满”的条件为止。
输入格式
输入的第一行包含两个整数 $N$ 和 $M$ ($1 \le N \times M \le 10^6$),表示矩阵的大小。
输出格式
输出的第一行包含一个整数,表示初始填入水的单元格(即 $1$ 的个数)的最小值。
接下来的 $N$ 行包含一个 $N \times M$ 的 $0/1$ 矩阵。在矩阵中,$1$ 表示你初始填入水的单元格,$0$ 表示空单元格。
如果存在多种方案,输出其中任意一种即可。
样例
样例输入 1
2 1
样例输出 1
2 1 1
样例输入 2
3 3
样例输出 2
3 1 0 1 0 0 0 0 1 0