点灯
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

        点灯(light up)是一种纸笔谜题,它规则简单,解题过程富有挑战性。点灯的棋盘是一张方形格网,其中的格子可能是黑色也可能是白色。 游戏目标是在格网中放置灯泡,使之能照亮所有的白色方格。 如果一个方格所在的同一行或同一列有一个灯泡,并且方格和灯泡之间没有黑色格子阻挡,那么这个方格将被灯泡照亮。 同时,放置的每个灯泡不能被另一个灯泡照亮。某些黑色格子中标有数字。 这些数字表示在该格子四周相邻的格子中共有多少个灯泡。如下图给出了该谜题的示例:
           
        现在你需要解决一个简化版的点灯谜题,在该简化版中,你不需要考虑黑色格子中数字的限制,其他规则仍需要遵守。你需要根据给定的盘面,计算最多可布置多少个灯泡。

输入描述:

    第一行输入两个正整数n,m(2 \le n,m \le 200),代表棋盘大小。
    随后n行,每行输入m个数a_{i,j}(0 \leq a_{i,j} <br />\leq 1)a_{i,j}0表示这里是白色方格,为1表示这里是黑色格子

输出描述:

    在一行中输出一个整数,表示最多可布置灯泡个数。
示例1

输入

复制
3 4
1 0 0 0
1 1 1 0
0 0 0 1

输出

复制
3