#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
int n, d, m, x;
vector<int> a1, a2;
bool cmp(int a, int b) { return a > b; }
int main() {
  scanf("%d%d%d", &n, &d, &m);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &x);
    if (x <= m)
      a1.push_back(x);
    else
      a2.push_back(x);
  }
  sort(a1.begin(), a1.end(), cmp);
  sort(a2.begin(), a2.end(), cmp);
  long long maxv = n + d, v = 0, res = 0, ans = 0, t = 0;
  for (int i = 0; i < a2.size(); i++) {
    if (v + d + 1 > maxv) break;
    v += d + 1;
    res += a2[i];
    t = i;
  }
  ans = res;
  for (int i = 0; i < a1.size(); i++) {
    if (v + 1 > maxv && t >= 0) {
      res -= a2[t--];
      v -= (d + 1);
    }
    if (v + 1 <= maxv) {
      res += a1[i];
      v++;
      ans = max(ans, res);
    }
  }
  printf("%lld\n", ans);
  return 0;
}
