#include <bits/stdc++.h>
using namespace std;
int n, k, d;
int dp[101][2];
int solve(int sum, bool is) {
  if (sum == 0) return is;
  if (sum < 0) return 0;
  int res = dp[sum][is];
  if (res != -1) return res;
  res = 0;
  bool y = is;
  for (int i = 1; i <= k; i++) {
    is = is || (i >= d);
    res = (res + solve(sum - i, is)) % 1000000007;
  }
  dp[sum][y] = res;
  return res;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  cin >> n >> k >> d;
  memset(dp, -1, sizeof(dp));
  cout << solve(n, 0) % 1000000007 << endl;
  return 0;
}
