sub e{ $i=@q; $q[$i]=$q[$j],$i=$j while $i&&$q[$j=$i-1>>1]<$_[0]; $q[$i]=$_[0]; } sub d{ $x=$q[0]; $y=pop@q; if(@q){ $i=0; $q[$i]=$q[$j],$i=$j while($j=$i*2+1)<@q&&$q[$j+1<@q&&$q[$j]<$q[$j+1]?++$j:$j]>$y; $q[$i]=$y; } $x; } sub g{ my($a,$y,$x)=@_; if($y>=0&&$y<$h&&$x>=0&&$x<$w){ $a+=vec($m[$y],$x,8)==$yu?1:-1; if($a>0||$y==$gy&&$x==$gx&&$gb==0){ e($a<<16|$y<<8|$x); } } } sub f{ my($a,$y,$x)=@_; @d=@q=(); &g; while(@q){ $t=d; $a=$t>>16; $y=$t>>8&255; $x=$t&255; return 1 if $y==$gy&&$x==$gx&&$a>=$gb; if($d[$y][$x]){ return 1 if $d[$y][$x]<$a; }else{ $d[$y][$x]=$a; g($a,$y,$x-1); g($a,$y,$x+1); g($a,$y-1,$x); g($a,$y+1,$x); } } } sub i{<>=~/\d+/g} ($h,$w)=i; ($a,$si,$sj)=i; ($b,$gi,$gj)=i; if(!($a+$si+$sj+$b+$gi+$gj&1)){ @m=<>; $a-=vec($m[$si],$sj,8)==42?1:-1; $yu=42;$gy=$gi;$gx=$gj;$gb=$b; $b1=f($a,$si,$sj); $yu=46;$gy=$si;$gx=$sj;$gb=$a; $b2=f($b,$gi,$gj); } print$b1*$b2?Yes:No