#XMOJ11880. 涂色

涂色

说明

时间限制:1 Sec 内存限制:256 MB 输入文件:paint.in 输出文件:paint.out

你要构造一个行数与列数相等的正方形网格,恰好涂黑 $N$ 个格子。

要求:任意一行或者任意一列中,黑色格子的数量最多为 $K$ 个。

输出满足条件的网格的最小边长,同时输出该边长下一种可行的涂色方案。

输入格式

第一行两个整数 $N,K$。

输出格式

第一行输出整数 $M$,代表正方形网格的边长(行数=列数),$M$ 必须是满足条件的最小可能值。

接下来输出 $M$ 行,每行是长度为 $M$ 的字符串。

字符 "#" 代表该格子涂黑,"." 代表不涂黑。

要求:

- 所有 "#" 的总数恰好等于 $N$;

- 任意一行、任意一列里 "#" 的数量不能超过 $K$。

样例

样例 1

8 2

4
##..
##..
..##
..##

样例说明:

存在其他正确答案。

样例 2

5 1

5
#....
....#
...#.
.#...
..#..

数据范围

对于 50% 的数据,$K \le N \le 20$。

对于 100% 的数据,$1 \le K \le N \le 1000$。