#include <bits/stdc++.h>
using namespace std;
struct MyStruct {
  long long li;
  long long ri;
  MyStruct(long long li, long long ri) {
    this->li = li;
    this->ri = ri;
  }
  bool operator<(const MyStruct& t) const {
    if (this->ri != t.ri)
      return (this->ri > t.ri);
    else {
      return (this->li < t.li);
    }
  }
};
void solve() {
  long long n, a, b, k;
  cin >> n >> a >> b >> k;
  vector<long long> vec;
  long long u;
  for (long long i = 0; i < n; i++) {
    cin >> u;
    vec.push_back(u);
  }
  vector<long long> arr;
  long long count = 0;
  for (long long i = 0; i < n; i++) {
    if (vec[i] % (a + b) - a > 0) {
      arr.push_back(ceil((double)(vec[i] % (a + b)) / a) - 1);
    } else if (vec[i] % (a + b) != 0) {
      count++;
    } else {
      arr.push_back(ceil((double)b / a));
    }
  }
  sort(arr.begin(), arr.end());
  for (long long i = 0; i < arr.size(); i++) {
    k -= arr[i];
    if (k >= 0) {
      count++;
    } else {
      break;
    }
  }
  cout << count;
}
int main() {
  cin.sync_with_stdio(0);
  cin.tie(0);
  cin.exceptions(cin.failbit);
  long long t = 1;
  while (t--) {
    solve();
    cout << endl;
  }
  return 0;
}
