#include <bits/stdc++.h>

using namespace std;

int main() {
  cin.tie(nullptr); ios::sync_with_stdio(false);

  int N,M,V,P; cin>>N>>M>>V>>P;
  vector<int> A(N); for (auto& a : A) cin>>a;
  sort(A.rbegin(), A.rend());
  vector<long> ca(N);
  for (int i = P; i < N; i++) {
    ca[i] = ca[i-1] + A[P-1]-A[i];
  }
  auto is_ok = [&](int n) {
    if (A[n-1]+M < A[P-1])
      return false;
    long buf = long((P-1)+(N-n+1))*M + ca[n-2] + long(A[n-1]+M-A[P-1])*(n-P);
    return buf >= (long)M*V;
  };
  int ok = P, ng = N+1;
  while (ng-ok > 1) {
    auto c = (ok+ng)/2;
    if (is_ok(c)) {
      ok = c;
    } else {
      ng = c;
    }
  }
  cout << ok << endl;

  return 0;
}
