import Data.List
import Data.Array

main = do
  n:m:v:p:_ <- map read . words <$> getLine :: IO [Int]
  as <- map read . words <$> getLine :: IO [Int]
  putStrLn $ show $ n - count n m v p as

count n m v p as = length $ filter f [0..n-p]
    where bs = array (0, n-1) $ zip [0..n-1] $ sort as
          f i = g $ foldl (\k -> \j -> if bs ! i == bs ! j then j else k) i [i..n-1]
          g j | v - j - p <= 0 = (bs ! j) + m < bs ! (n-p)
              | otherwise      = (bs ! j) + m < bs ! (n-p) || (v - j - p) * m > foldl (\x -> \k -> x + m + (bs ! j) - (bs ! k)) 0 [j+1..n-p]
