i:(2 2#)'.'{(x=45)|(x=32)|(x>47)&x<58}#'0:"i/15" abs:{x|-x} ds:(+/abs@-/)'i c:2000000 f:{ w:y-(abs@x[1]-z) p:x[0]-w $[w>-1; p+!1+2*w; ()]} #(?,/(*'i)f[;;c]'ds)^i[&i[;1;1]=c;1;0] m:4000000 xs:i[;0;0] ys:i[;0;1] u:{w:ds-abs@ys-\:x;p:xs-w f:(+(p;p+1+2*w))@&w>-1 *|{x[0],x[1]|y[1]*y[0]r)+m*r@&m>r:u