#include <bits/stdc++.h>
int n, k, d, mod = 1000000007;
int c[101][101];
int get(int a, int b) {
  if (c[a][b] == -1) {
    c[a][b] = 0;
    for (int i = 1; i <= k && i <= a; i++)
      c[a][b] = (c[a][b] + get(a - i, i >= b ? 0 : b)) % mod;
  }
  return c[a][b];
}
int main() {
  std::cin >> n >> k >> d;
  for (int i = 0; i <= n; i++)
    for (int j = 0; j <= d; j++) c[i][j] = -1;
  c[0][0] = 1;
  std::cout << get(n, d);
}
