#include <bits/stdc++.h>
using namespace std;
const int maxn = 105;
const int mod = 1e9 + 7;
int n, m, k, ans;
int dp[maxn][maxn][maxn], ndp[maxn][maxn][maxn], binom[maxn][maxn];
void Add(int &a, int b) {
  a += b;
  if (a >= mod) a -= mod;
}
int main() {
  scanf("%d%d%d", &n, &m, &k);
  binom[0][0] = 1;
  for (int i = 1; i <= n; i++) {
    binom[i][0] = binom[i][i] = 1;
    for (int j = 1; j < i; j++)
      binom[i][j] = min(k + 1, (binom[i - 1][j - 1] + binom[i - 1][j]));
  }
  dp[0][1][1] = 1;
  for (int i = 0; i < m; i++) {
    for (int j = 0; j <= n; j++)
      for (int p = 1; p <= n; p++)
        for (int q = 1; q <= k; q++) {
          int cur = dp[j][p][q];
          if (!cur) continue;
          for (int jj = p; jj <= n - j; jj++) {
            if (q * binom[jj - 1][p - 1] <= k)
              Add(ndp[j + jj][jj - p + (j == 0)][q * binom[jj - 1][p - 1]],
                  cur);
            else
              break;
          }
        }
    for (int j = 0; j <= n; j++)
      for (int p = 0; p <= n; p++)
        for (int q = 1; q <= k; q++) {
          dp[j][p][q] = ndp[j][p][q];
          ndp[j][p][q] = 0;
          if (p == 0) Add(ans, dp[j][p][q]);
        }
    Add(dp[0][1][1], 1);
  }
  printf("%d\n", ans);
  return 0;
}
