#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
const long long mx = 1e5 + 5;
long long ceil(long long A, long long B) {
  if (A % B == 0)
    return A / B;
  else
    return (A / B) + 1ll;
}
long long middle(long long a, long long b, long long c) {
  if ((a <= b && b <= c) || (c <= b && b <= a))
    return b;
  else if ((b <= a && a <= c) || (c <= a && a <= b))
    return a;
  else
    return c;
}
bool ispalindrom(string s) {
  transform(s.begin(), s.end(), s.begin(), ::tolower);
  return (s[0] == s[s.size() - 1] ? 1 : 0);
}
bool as_second(const pair<long long, long long> &a,
               const pair<long long, long long> &b) {
  return (a.second < b.second);
}
bool ds_first(const pair<long long, long long> &a,
              const pair<long long, long long> &b) {
  return (a.first > b.first);
}
bool ds_second(const pair<long long, long long> &a,
               const pair<long long, long long> &b) {
  return a.second > b.second;
}
template <typename KeyType, typename ValueType>
std::pair<KeyType, ValueType> get_max(const std::map<KeyType, ValueType> &x) {
  using pairtype = std::pair<KeyType, ValueType>;
  return *std::max_element(x.begin(), x.end(),
                           [](const pairtype &p1, const pairtype &p2) {
                             return p1.second < p2.second;
                           });
}
template <typename Map>
bool map_compare(Map const &lhs, Map const &rhs) {
  return lhs.size() == rhs.size() &&
         std::equal(lhs.begin(), lhs.end(), rhs.begin());
}
string str, str1, str2, str3, str4, str5, str6, str7;
char ch, ch1, ch2, ch3;
bool flag = true, flag1 = true, flag2 = true;
long long a, b, c, d, e, f, g, h, l, i, j, k, m, n, o, p, q, r, s, t, u, v, w,
    x, y, z, cnt = 0, cnt1 = 0, cnt2 = 0, cnt3 = 0, cnt4 = 0, sum = 0, sum1 = 0,
             sum2 = 0, ans = 0, ans1 = 0, ans2 = 0, sum3 = 0, ma = 0, ma1 = 0,
             mi = INT_MAX, mi1 = INT_MAX, temp = 0, temp1 = 0, temp2 = 0;
void SECTUMSEMPRA() {
  cin >> n >> x >> y;
  vector<long long> v(n);
  for (long long i = 0; i < n; i++) cin >> v[i];
  sort(v.begin(), v.end());
  ;
  cnt = 0;
  if (y < x) {
    cout << n << endl;
    return;
  }
  for (long long i = 0; i < n; i++) {
    if (v[i] <= x) cnt++;
  }
  cout << ceil(cnt, 2) << endl;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  t = 1;
  while (t--) {
    SECTUMSEMPRA();
  }
  return 0;
}
