#include <bits/stdc++.h>
using namespace std;
long long n, k, d;
const long long oo = 1e9 + 7;
long long f[101][2];
int main() {
  cin >> n >> k >> d;
  f[0][0] = 1;
  for (int i = 1; i <= n; ++i) {
    long long cur = 0;
    for (int j = 1; j <= min(k, i * 1LL); ++j)
      f[i][1] = (f[i][1] + f[i - j][1]) % oo;
    for (int j = min(k, i * 1LL); j >= d; --j)
      f[i][1] = (f[i][1] + f[i - j][0]) % oo;
    for (int j = 1; j <= min(i * 1LL, d - 1); ++j)
      f[i][0] = (f[i][0] + f[i - j][0]) % oo;
  }
  cout << (f[n][1]) % oo;
}
