有一个大小为 的村庄。村庄中的每个格子要么是住宅,要么是空地。
村长希望在空地上种树,使村庄更加自然友好。对于一栋住宅,与它共边或共顶点的至多 个格子称为这栋住宅的 周围格子。
种树后必须满足以下两个条件。
种植一棵树需要很高的成本。请计算为了满足条件至少需要种植多少棵树。
输入按照以下格式从标准输入给出。
对于每个测试用例,输出一行,为满足条件所需种植的最少树木数量。如果无法通过种树满足条件,输出 -1。
在第二个测试用例中,如果在第二行中间的空地种一棵树,这棵树与两栋住宅都相邻,因此总和变为 。
第三个测试用例中没有住宅,所以无论在哪里种树,总和都保持为 。
每个测试用例按照以下格式给出。
如果 的第 个字符是 #,则第 行第 列的格子是住宅;如果是 .,则该格子是空地。
# 或 .。| 70 |
추가적인 제약이 없다. |