#include <bits/stdc++.h>
int n, m, d;
long long ans, f[110][110], g[110][110];
int main() {
  int i, j, k;
  scanf("%d%d%d", &n, &m, &d);
  d--;
  f[0][0] = g[0][0] = 1;
  for (i = 1; i <= n; ans = (ans + f[i++][n]) % 1000000007)
    for (j = 1; j <= n; j++)
      for (k = m < j ? m : j; k; k--)
        f[i][j] = (f[i][j] + f[i - 1][j - k]) % 1000000007;
  for (i = 1; i <= n; ans = (ans - g[i++][n] + 1000000007) % 1000000007)
    for (j = 1; j <= n; j++)
      for (k = d < j ? d : j; k; k--)
        g[i][j] = (g[i][j] + g[i - 1][j - k]) % 1000000007;
  printf("%I64d", ans);
  return 0;
}
