n, m, v, p = gets.split.map(&:to_i)
a = gets.split.map(&:to_i).sort!
a.push a.delete_at(-p)

r = m * v
s = a.inject(:+).succ.+(r).fdiv(n).ceil
a.map!.with_index do |x, i|
  y = [r, m].min
  r -= y
  x + m
end

x = a[-1]
puts n - a.find_index { |y| y >= x }
