#include <bits/stdc++.h>
using namespace std;
long long n, k, d;
long long dp[2002][202];
long long mod = 1000000007;
long long solve(int sum, int ok) {
  if (dp[sum][ok] == -1) {
    if (sum < n) {
      int ans = 0;
      for (int i = 1; i <= k; i++) {
        if (ok == 0 && i >= d)
          ans += solve(sum + i, 1);
        else
          ans += solve(sum + i, ok);
        ans = ans % mod;
      }
      return dp[sum][ok] = ans;
    }
  } else
    return dp[sum][ok];
  if (sum == n && ok == 1) {
    return dp[sum][ok] = 1;
  }
  if (sum > n) {
    return dp[sum][ok] = 0;
  }
  if (sum == n && ok == 0) {
    return dp[sum][ok] = 0;
  }
}
int main() {
  memset(dp, -1, sizeof dp);
  cin >> n >> k >> d;
  cout << solve(0, 0) % mod << endl;
  return 0;
}
