($m,$n)=glob<>; push@a,[glob]for<>; $b=99; sub d { my($y,$x)=@_; for$j($y-1..$y+1){ if($j>=0&&$j<$m){ for$i($x-1..$x+1){ if($i>=0&&$i<$n){ $a[$j][$i]^=1; } } } } } sub f { my($y,$x,$c)=@_; if($x==$n){ $x=0;++$y; } if($y==$m){ for$j(0..$m-1){ for$i(0..$n-1){ if($a[$j][$i]){ return; } } } if($b>$c){ $b=$c; } return; } if($y>0&&$x>0){ if($a[$y-1][$x-1]){ d($y,$x); f($y,$x+1,$c+1); d($y,$x); }else{ f($y,$x+1,$c); } }else{ f($y,$x+1,$c); d($y,$x); f($y,$x+1,$c+1); d($y,$x); } } f(0,0,0); print $b;