#include <bits/stdc++.h>
using namespace std;
const int base = 1000000007;
int n, k, t, r1 = 0, r2 = 0;
int a[102] = {0};
int main() {
  int i, j;
  cin >> n >> k >> t;
  a[0] = 1;
  for (i = 1; i <= n; i++)
    for (j = 1; j <= min(k, i); j++) a[i] = (a[i] + a[i - j]) % base;
  r1 = a[n];
  memset(a, 0, sizeof(a));
  a[0] = 1;
  for (i = 1; i <= n; i++)
    for (j = 1; j <= min(t - 1, i); j++) a[i] = (a[i] + a[i - j]) % base;
  r2 = a[n];
  if (r1 >= r2)
    cout << r1 - r2;
  else
    cout << r1 - r2 + base;
  return 0;
}
