#include <bits/stdc++.h>
using namespace std;
int dp[119][119];
const int mod = 1000000000 + 7;
void add(int &x, int y) {
  x += y;
  x %= mod;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int n, k, d;
  cin >> n >> k >> d;
  dp[0][0] = 1;
  for (int sum = 0; sum <= n; sum++) {
    for (int mx = 0; mx <= k; mx++) {
      for (int e = 1; e <= k; e++) {
        if (sum + e <= n) {
          add(dp[sum + e][max(mx, e)], dp[sum][mx]);
        }
      }
    }
  }
  int ans = 0;
  for (int mx = d; mx <= k; mx++) {
    add(ans, dp[n][mx]);
  }
  cout << ans;
  return 0;
}
