A, B, N, M = gets.split.map(&:to_i) ac, wa = 0, 10**18 while (ac - wa).abs > 1 wj = (ac + wa) / 2 x = A - wj y = B - wj if (x < 0 ? y < 0 ? false : -x <= y / M : y < 0 ? -y <= x / N : true) ac = wj else wa = wj end end puts ac