#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007;
int n, m, K;
int f[55][55][55][110], c[110][110];
int main() {
  scanf("%d%d%d", &n, &m, &K);
  n >>= 1;
  for (int i = 0; i <= 100; i++) {
    c[i][0] = 1;
    for (int j = 1; j <= i; j++)
      c[i][j] = min(200, c[i - 1][j] + c[i - 1][j - 1]);
  }
  int ans = 0;
  for (int i = 1; i <= n; i++) f[i][1][i][1] = 1;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j < m && j <= n; j++)
      for (int k = 1; k <= i; k++)
        for (int l = 1; l <= K; l++)
          if (f[i][j][k][l]) {
            int t = f[i][j][k][l];
            (ans += 1ll * t * (m - j)) %= MOD;
            for (int p = 1; p + i <= n; p++)
              if (l * c[p + k - 1][k - 1] <= K)
                (f[i + p][j + 1][p][l * c[p + k - 1][k - 1]] += t) %= MOD;
          }
  printf("%d\n", ans);
  return 0;
}
