using namespace std;
typedef unsigned long long ll;
typedef pair<int,int> pii;
const int maxn=1e3+65,MAXN=6e2+40;
const ll MOD=1e9+7;
ll a[maxn],b[maxn],cnt,vis[maxn],idx,sum,d,k;
void dfs(ll n,ll num,ll flag){
num+=n;
if(num>cnt)return;
if(n>=d)flag=1;
if(num==cnt&&flag){
sum=(sum+1)%MOD;
return;
}
for(int i=1;i<=k;i++)dfs(i,num,flag);
}
int main()
{
cin>>cnt>>k>>d;
dfs(0,0,0);
cout<<sum<<endl;
return 0;
}