// Source by Gabriel Vasconcelos
// Pay me 10$ per use or satan will curse your soul.
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define min(x, y) ((x) < (y)) ? (x) : (y)
#define max(x, y) ((x) > (y)) ? (x) : (y)
#define abs(x) ((x) < 0) ? -(x) : (x)
typedef long long int64;
typedef unsigned long long uint64;
typedef unsigned uint;
int main() {
ios_base::sync_with_stdio(false);
uint n, h, k, buf;
uint total = 0;
uint current;
vector<uint> potatoes;
bool found, added;
cin >> n >> h >> k;
for (uint i = 0; i < n; ++i)
{
cin >> buf;
potatoes.push_back(buf);
}
cout << "Letf\n";
sort(potatoes.begin(), potatoes.end());
uint j = n - 1;
while(potatoes[0] + potatoes[j] > h)
{
potatoes[j];
j--;
total++;
}
current = potatoes[0] + potatoes[j];
while (true)
{
found = added = false;
for (int i = j - 1; i >= 0; --i)
{
if (!found && potatoes[i] > 0) found = true;
if (current + potatoes[i] < h && potatoes[i] > 0)
{
current += potatoes[i] - k;
potatoes[i] = -1;
total++;
added = true;
break;
}
}
if (found && !added)
{
current -= k;
total++;
}
else if (!found)
{
break;
}
}
cout << total;
return 0;
}
Ly8gU291cmNlIGJ5IEdhYnJpZWwgVmFzY29uY2Vsb3MKLy8gUGF5IG1lIDEwJCBwZXIgdXNlIG9yIHNhdGFuIHdpbGwgY3Vyc2UgeW91ciBzb3VsLgoKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgZW5kbCAnXG4nCiNkZWZpbmUgbWluKHgsIHkpICgoeCkgPCAoeSkpID8gKHgpIDogKHkpCiNkZWZpbmUgbWF4KHgsIHkpICgoeCkgPiAoeSkpID8gKHgpIDogKHkpCiNkZWZpbmUgYWJzKHgpICgoeCkgPCAwKSA/IC0oeCkgOiAoeCkKCnR5cGVkZWYgbG9uZyBsb25nIGludDY0Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1aW50NjQ7CnR5cGVkZWYgdW5zaWduZWQgdWludDsKCmludCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICB1aW50IG4sIGgsIGssIGJ1ZjsKICAgIHVpbnQgdG90YWwgPSAwOwogICAgdWludCBjdXJyZW50OwogICAgdmVjdG9yPHVpbnQ+IHBvdGF0b2VzOwogICAgYm9vbCBmb3VuZCwgYWRkZWQ7CgogICAgY2luID4+IG4gPj4gaCA+PiBrOwoKICAgIGZvciAodWludCBpID0gMDsgaSA8IG47ICsraSkKICAgIHsKICAgICAgICBjaW4gPj4gYnVmOwogICAgICAgIHBvdGF0b2VzLnB1c2hfYmFjayhidWYpOwogICAgfQoKICAgIGNvdXQgPDwgIkxldGZcbiI7CiAgICAKICAgIHNvcnQocG90YXRvZXMuYmVnaW4oKSwgcG90YXRvZXMuZW5kKCkpOwoKICAgIHVpbnQgaiA9IG4gLSAxOwogICAgd2hpbGUocG90YXRvZXNbMF0gKyBwb3RhdG9lc1tqXSA+IGgpCiAgICB7CiAgICAgICAgcG90YXRvZXNbal07CiAgICAgICAgai0tOwogICAgICAgIHRvdGFsKys7CiAgICB9CgogICAgY3VycmVudCA9IHBvdGF0b2VzWzBdICsgcG90YXRvZXNbal07CgogICAgd2hpbGUgKHRydWUpCiAgICB7CiAgICAgICAgZm91bmQgPSBhZGRlZCA9IGZhbHNlOwogICAgICAgIGZvciAoaW50IGkgPSBqIC0gMTsgaSA+PSAwOyAtLWkpCiAgICAgICAgewogICAgICAgICAgICBpZiAoIWZvdW5kICYmIHBvdGF0b2VzW2ldID4gMCkgZm91bmQgPSB0cnVlOwogICAgICAgICAgICBpZiAoY3VycmVudCArIHBvdGF0b2VzW2ldIDwgaCAmJiBwb3RhdG9lc1tpXSA+IDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGN1cnJlbnQgKz0gcG90YXRvZXNbaV0gLSBrOwogICAgICAgICAgICAgICAgcG90YXRvZXNbaV0gPSAtMTsKICAgICAgICAgICAgICAgIHRvdGFsKys7CiAgICAgICAgICAgICAgICBhZGRlZCA9IHRydWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoZm91bmQgJiYgIWFkZGVkKQogICAgICAgIHsKICAgICAgICAgICAgY3VycmVudCAtPSBrOwogICAgICAgICAgICB0b3RhbCsrOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmICghZm91bmQpCiAgICAgICAgewogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CgogICAgY291dCA8PCB0b3RhbDsKICAgIAogICAgcmV0dXJuIDA7Cn0=