#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
ll w[200500], n, m, v, p;
bool check(int d)
{
	if(d>=n-p) return true;
	int lim=w[d]+m;
	ll zan=m*(v-p);
	int cnt=0;
	for(int i=0;i+p<=n;i++)
	{
		if(i==d) continue;
		ll c=min(m,lim-w[i]);
		if(c<0) return false;
		zan-=c;
	}
	return zan<=0;
}
int main(void)
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin>>n>>m>>v>>p;
	for(int i = 0; i < n; i++) cin>>w[i];
	sort(w, w+n);
	ll cnt = 0, l = -1, r = n;
	while(r-l > 1)
	{
		int mid = (l+r)/2;
		if (check(mid)) r = mid;
		else l = mid;
	}
	cout<<n-r;
	return 0;
}
