#include <bits/stdc++.h>
using namespace std;
const int MAX_TN = 101;
const int INF = INT_MAX / 2;
int tn, km, tm, kc, dp[MAX_TN], ans = -1;
vector<int> tc;
void loop(int n, int cnt, int c) {
  if (n >= tn)
    ans = max(ans, (int)((kc + c) / (km + (cnt * tm))));
  else {
    if (dp[cnt] > c)
      ;
    else {
      dp[cnt] = c;
      loop(n + 1, cnt, c);
      loop(n + 1, cnt + 1, c + tc[n]);
    }
  }
}
int main() {
  memset(dp, -1, sizeof(dp));
  cin >> tn >> km >> tm >> kc;
  tc = vector<int>(tn);
  for (int i = 0; i < tn; i++) cin >> tc[i];
  loop(0, 0, 0);
  cout << ans << endl;
  return 0;
}
