($h,$w)=<>=~/\d+/g; for$y(1..$h){ @f{map"$_,$y",1..$w}=<>=~/\d/g; } sub f{ my($x,$y)=@_; if($x>0&&$x<=$w&&$y>0&&$y<=$h){ if($f{"$x,$y"}==$c){ $f{"$x,$y"}=$d; ++$t; f($x-1,$y); f($x+1,$y); f($x,$y-1); f($x,$y+1); } } } for(1..<>){ ($y,$x,$d)=<>=~/\d+/g; if(!$n && $f{"$x,$y"}!=$d){ $t=0; $c=1-$d; f($x,$y); if($t==$h*$w){ $n=1; } } } if($n){ for$y(1..$h){ print join($",($d)x$w),$/; } }else{ for$y(1..$h){ print join($",@f{map"$_,$y",1..$w}),$/; } }