#include <bits/stdc++.h>
using namespace std;
clock_t Start, End;
double FT;
int n, k, D, tab[2][110], M = 1000000007;
void Proccess();
int main() {
  Proccess();
  End = clock();
  return 0;
}
void Proccess() {
  scanf("%d%d%d", &n, &k, &D);
  tab[0][0] = 1;
  for (int S = 1; S <= n; S++)
    for (int N = 1; N <= k && N <= S; N++)
      (tab[0][S] += tab[0][S - N]) %= M, (tab[1][S] += tab[N < D][S - N]) %= M;
  printf("%d", tab[1][n]);
}
