def sign(n) n.positive? ? 1 : n.zero? ? 0 : -1 end def solve(x0, y0, x, y, ds) ans = 0 while true return ans if x0 == x && y0 == y dx = (x - x0).abs dy = (y - y0).abs ell = [dx, dy].max ds.each do |d| return ans + 1 if d == ell end maxd = ds[0] if dx > 3 * maxd && dy > 3 * maxd k = [dx / maxd, dy / maxd].min x0 += k * maxd * sign(x - x0) y0 += k * maxd * sign(y - y0) ans += k next end if ell >= 2 * maxd x0 += maxd * sign(x - x0) y0 += maxd * sign(y - y0) ans += 1 next end return ans + 2 end end _ = gets.to_i ds = gets.split.map(&:to_i) ds.sort! ds.reverse! x, y = gets.split.map(&:to_i) p solve(0, 0, x, y, ds)