($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; f($x-1,$y); f($x+1,$y); f($x,$y-1); f($x,$y+1); } } } for(1..<>){ ($y,$x,$d)=<>=~/\d+/g; if($f{"$x,$y"}!=$d){ $c=1-$d; f($x,$y); } } for$y(1..$h){ print join($",@f{map"$_,$y",1..$w}),$/; }