让我们来谈谈房间里那头“大象”:你的房间里养了一只袋鼠已经有一段时间了,你需要把它藏起来而不引起怀疑,因为你想继续饲养这只动物。隐藏这么大的一只动物很困难:如果你占用了太多的空间,那么你显然是在向朋友们隐瞒什么。因此,你希望尽可能少地占用空间来隐藏这只袋鼠。
Pixabay License by pen_ash on Pixabay
当袋鼠靠墙站立时,你拍了一张它的黑白照片。环顾四周,你发现唯一能用来隐藏袋鼠的工具是空的铁罐。铁罐的尺寸对应照片中 $2 \times 2$ 的像素区域,且这些罐子不能重叠。所以,你可以制作一个“袋鼠罐”(cangaroo),如果有人问你为什么会有袋鼠形状的罐子,你只需说这是你开的一个糟糕的玩笑。
每个罐子的位置必须精确对应照片中 $2 \times 2$ 的像素块,它们不能平移或旋转以仅部分覆盖某些像素。此外,罐子不能悬空,因此每个罐子都必须有支撑,要么由地板(就在照片最底行下方)支撑,要么由另一个罐子支撑,对于后者,其左半部分或右半部分中至少有一个必须直接支撑在另一个罐子上。除此之外,该结构不需要保持平衡。
隐藏袋鼠最少需要多少个罐子?
输入格式
- 一行包含两个整数 $n$ ($2 \le n \le 100$) 和 $m$ ($2 \le m \le 10$),表示房间的高度和宽度。$n$ 和 $m$ 均为偶数。
- $n$ 行,每行包含 $m$ 个字符,字符为 ‘.’ 或 ‘#’,其中 ‘#’ 标记了需要用罐子覆盖的位置。
输出格式
输出隐藏房间里的袋鼠所需的最少 $2 \times 2$ 罐子数量。
样例
输入格式 1
4 4 .... ..#. .##. ##..
输出格式 1
3
输入格式 2
4 4 #.#. .... #... ....
输出格式 2
4
输入格式 3
14 8 ........ ....##.. ...###.. ....##.. .....#.. ...####. ..#####. .######. .#####.. .###.... .##..... ..##.... ...#.... .###....
输出格式 3
15