#include <bits/stdc++.h>
using namespace std;
const int N = 105;
const int mod = 1e9 + 7;
inline void MOD(int &x) {
  if (x >= mod) x -= mod;
}
int n, m, k;
int dp[2][N][N][N], C[N][N], r;
int ans;
int main() {
  for (int i = 0; i <= 100; i++) {
    C[i][0] = 1;
    for (int j = 1; j <= i; j++)
      C[i][j] = min(C[i - 1][j - 1] + C[i - 1][j], 101);
  }
  scanf("%d%d%d", &n, &m, &k);
  r = 0;
  for (int j = 2; j <= n + 1; j++) dp[r][j][j - 1][1] = 1;
  for (int i = 1; i <= m; i++) {
    for (int j = 1 + i; j <= n + 1; j++)
      for (int q = 1; q <= k; q++)
        ans = ((long long)dp[r][j][0][q] * (m - i + 1) + ans) % (long long)mod,
        dp[r][j][0][q] = 0;
    if (i == m) break;
    for (int j = 1 + i; j <= n + 1; j++)
      for (int p = 1; p < j; p++)
        for (int q = 1; q <= k; q++)
          if (dp[r][j][p][q]) {
            for (int t = p; j + t <= n + 1 && q * C[t - 1][p - 1] <= k; t++)
              MOD(dp[r ^ 1][j + t][t - p][q * C[t - 1][p - 1]] +=
                  dp[r][j][p][q]);
            dp[r][j][p][q] = 0;
          }
    r ^= 1;
  }
  printf("%d\n", ans);
  return 0;
}
