#include <bits/stdc++.h>
using namespace std;
long long q, n, m, c[30], r, a[201], a1[201];
string s;
vector<long long> v, v1;
int main() {
  cin >> n >> c[1] >> c[2];
  c[1]++;
  for (int i = 0; i < n; i++) {
    cin >> c[3];
    c[4] += c[3];
    if (c[3] <= c[2])
      v.push_back(c[3]);
    else
      v1.push_back(c[3]);
  }
  c[8] = v.size();
  c[9] = v1.size();
  if (c[9] == 0) {
    cout << c[4];
    return 0;
  }
  sort(v.rbegin(), v.rend());
  sort(v1.rbegin(), v1.rend());
  c[3] = (n - 1) % c[1];
  c[4] = 0;
  c[5] = n / c[1] + (n % c[1] > 0);
  for (int i = 0; i < min(c[3], c[8]); i++) {
    r += v[i];
    c[4] = i + 1;
  }
  for (int i = 0; i < min(c[5], c[9]); i++) {
    r += v1[i];
    c[6] = i + 1;
  }
  if (c[6] < c[5]) {
    c[7] = c[4];
    for (int i = c[7]; i < min(c[7] + (c[5] - c[6]) * c[1], c[8]); i++) {
      r += v[i];
      c[4] = i + 1;
    }
  }
  for (int i = c[6] - 1; i >= 0; i--) {
    c[7] = 0;
    if (c[4] + c[1] > c[8]) {
      for (int i = c[4]; i < c[8]; i++) {
        c[7] += v[i];
      }
      if (c[7] > v1[i]) {
        r += c[7] - v1[i];
      }
      cout << r;
      return 0;
    }
    for (int i = c[4]; i < c[4] + c[1]; i++) {
      c[7] += v[i];
    }
    if (c[7] > v1[i]) {
      r += c[7] - v1[i];
      c[4] += c[1];
    } else {
      cout << r;
      return 0;
    }
  }
  cout << r;
  return 0;
}
