#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<fstream>
#include<map>
#include<ctime>
#include<set>
#include<queue>
#include<cmath>
#include<vector>
#include<bitset>
#include<functional>
#define x first
#define y second
#define mp make_pair
#define pb push_back
#define REP(i,l,r) for((i)=(l);(i)<=(r);++(i))
#define REP2(i,l,r) for((i)=(l);(i)!=(r);++(i))
using namespace std;
typedef unsigned long long LL;
typedef double ld;
const int MAX=500000+10;
LL m,d;
int n;
LL x[MAX];
int main()
{
// freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);
int i;
cin>>m>>d;
cin>>n;
REP(i,1,n)
cin>>x[i];
sort(x+1,x+n+1,greater<LL>());
if(x[1]<m-d)
{
printf("0\n");
return 0;
}
LL now=0;
for(i=1;i<=n;++i)
if(x[i]<m-d)
break;
int t=i-1;//the last one
for(i=1;i<=n;++i)
{
if(x[i]<(d-now))
{
printf("0\n");
return 0;
}
else
{
LL nd=now+x[i]-(d-now);
if(nd>=m)
{
printf("%d\n",i);
return 0;
}
if(i==t)
continue;
if(nd<d)
now=nd;
else
{
printf("%d\n",i>t?i:i+1);
return 0;
}
}
if(now+x[t]-(d-now)>=m && x[t]>=(d-now))
{
printf("%d\n",i>=t?i:i+1);
return 0;
}
}
printf("0\n");
return 0;
}
I2luY2x1ZGU8Y3N0ZGlvPgojaW5jbHVkZTxjc3RkbGliPgojaW5jbHVkZTxjc3RyaW5nPgojaW5jbHVkZTxhbGdvcml0aG0+CiNpbmNsdWRlPGlvc3RyZWFtPgojaW5jbHVkZTxmc3RyZWFtPgojaW5jbHVkZTxtYXA+CiNpbmNsdWRlPGN0aW1lPgojaW5jbHVkZTxzZXQ+CiNpbmNsdWRlPHF1ZXVlPgojaW5jbHVkZTxjbWF0aD4KI2luY2x1ZGU8dmVjdG9yPgojaW5jbHVkZTxiaXRzZXQ+CiNpbmNsdWRlPGZ1bmN0aW9uYWw+CiNkZWZpbmUgeCBmaXJzdAojZGVmaW5lIHkgc2Vjb25kCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgUkVQKGksbCxyKSBmb3IoKGkpPShsKTsoaSk8PShyKTsrKyhpKSkKI2RlZmluZSBSRVAyKGksbCxyKSBmb3IoKGkpPShsKTsoaSkhPShyKTsrKyhpKSkKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIExMOwp0eXBlZGVmIGRvdWJsZSBsZDsKCmNvbnN0IGludCBNQVg9NTAwMDAwKzEwOwoKTEwgbSxkOwppbnQgbjsKTEwgeFtNQVhdOwoKaW50IG1haW4oKQp7Ci8vICAgIGZyZW9wZW4oImlucHV0LnR4dCIsInIiLHN0ZGluKTtmcmVvcGVuKCJvdXRwdXQudHh0IiwidyIsc3Rkb3V0KTsKICAgIGludCBpOwogICAgY2luPj5tPj5kOwogICAgY2luPj5uOwogICAgUkVQKGksMSxuKQogICAgICAgIGNpbj4+eFtpXTsKICAgIHNvcnQoeCsxLHgrbisxLGdyZWF0ZXI8TEw+KCkpOwogICAgaWYoeFsxXTxtLWQpCiAgICB7CiAgICAgICAgcHJpbnRmKCIwXG4iKTsKICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIExMIG5vdz0wOwogICAgZm9yKGk9MTtpPD1uOysraSkKICAgICAgICBpZih4W2ldPG0tZCkKICAgICAgICAgICAgYnJlYWs7CiAgICBpbnQgdD1pLTE7Ly90aGUgbGFzdCBvbmUKICAgIGZvcihpPTE7aTw9bjsrK2kpCiAgICB7CiAgICAgICAgaWYoeFtpXTwoZC1ub3cpKQogICAgICAgIHsKICAgICAgICAgICAgcHJpbnRmKCIwXG4iKTsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIExMIG5kPW5vdyt4W2ldLShkLW5vdyk7CiAgICAgICAgICAgIGlmKG5kPj1tKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBwcmludGYoIiVkXG4iLGkpOwogICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoaT09dCkKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICBpZihuZDxkKQogICAgICAgICAgICAgICAgbm93PW5kOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHByaW50ZigiJWRcbiIsaT50P2k6aSsxKTsKICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKG5vdyt4W3RdLShkLW5vdyk+PW0gJiYgeFt0XT49KGQtbm93KSkKICAgICAgICB7CiAgICAgICAgICAgIHByaW50ZigiJWRcbiIsaT49dD9pOmkrMSk7CiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KICAgIH0KICAgIHByaW50ZigiMFxuIik7CiAgICByZXR1cm4gMDsKfQo=