#include <bits/stdc++.h>
const long MOD = 1000000007;
using namespace std;
int main(){
//freopen("input.txt","r",stdin);
long n,m,k;
cin >> n >> m >> k;
long a[n+1];
long ans[n+1];
memset(a,0,sizeof(a));
memset(ans,0,sizeof(ans));
for (long i = 1; i<=k;++i){
long pos;
cin >> pos;
a[pos] = 1;
}
a[0] = 0;
ans[1] = 1;
for(long i = 2; i<=n;++i){
if (a[i] == 1) continue;
for (long j = i - m; j <i;++j){
if (j < 0) continue;
if (a[j] == 1) continue;
if (j == 0){
ans[i] += 1;
}
else {
ans[i] += ans[j];
}
ans[i] %= MOD;
}
ans[i] %= MOD;
}
/*
for(long i = 1; i<=n;++i){
cout << ans[i] << "\n";
}
*/
cout << ans[n];
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgpjb25zdCBsb25nIE1PRCA9IDEwMDAwMDAwMDc7Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKXsKCiAgLy9mcmVvcGVuKCJpbnB1dC50eHQiLCJyIixzdGRpbik7CiAgCiAgbG9uZyBuLG0sazsKCgogIGNpbiA+PiBuID4+IG0gPj4gazsKICBsb25nIGFbbisxXTsKICBsb25nIGFuc1tuKzFdOwoKICBtZW1zZXQoYSwwLHNpemVvZihhKSk7CiAgbWVtc2V0KGFucywwLHNpemVvZihhbnMpKTsKCiAgZm9yIChsb25nIGkgPSAxOyBpPD1rOysraSl7CiAgICBsb25nIHBvczsKICAgIGNpbiA+PiBwb3M7CiAgICBhW3Bvc10gPSAxOwogIH0KCgogIGFbMF0gPSAwOwogIGFuc1sxXSA9IDE7CiAgZm9yKGxvbmcgaSA9IDI7IGk8PW47KytpKXsKICAgIGlmIChhW2ldID09IDEpIGNvbnRpbnVlOwogICAgZm9yIChsb25nIGogPSBpIC0gbTsgaiA8aTsrK2opewogICAgICAgIGlmIChqIDwgMCkgY29udGludWU7CglpZiAoYVtqXSA9PSAxKSBjb250aW51ZTsKICAgICAgICBpZiAoaiA9PSAwKXsKCSAgYW5zW2ldICs9IDE7Cgl9CgllbHNlIHsKCSAgYW5zW2ldICs9IGFuc1tqXTsKCX0KCWFuc1tpXSAlPSBNT0Q7CiAgICB9CiAgICBhbnNbaV0gJT0gTU9EOwogIH0KLyoKICBmb3IobG9uZyBpID0gMTsgaTw9bjsrK2kpewogICAgY291dCA8PCBhbnNbaV0gPDwgIlxuIjsKICB9CiovCgogIGNvdXQgPDwgYW5zW25dOwogIHJldHVybiAwOwp9Cg==