eval"N,*D,X,Y="+`dd`.split*?, q=X.abs+Y.abs o,e=D.partition(&:odd?).map &:sort f=o.any?{|o|e.bsearch{|e|e<(o-q).abs ? 1:e>o+q ?-1:0}} p q<1?0:D.index(q)?1:(q%2<1?D.max*2>=q:f)?2:-1