#include <bits/stdc++.h>
using namespace std;
const int MAXN = 109;
const int MOD = 1000000007;
int n;
long long m;
int k;
long long f[MAXN];
long long p[MAXN];
long long g[MAXN][MAXN * MAXN];
inline long long pow_mod(long long a, long long b) {
  long long ret = 1, base = a;
  while (b) {
    if (b & 1) ret = ret * base % MOD;
    base = base * base % MOD;
    b >>= 1;
  }
  return ret;
}
int main() {
  cin >> n >> m >> k;
  f[0] = 1;
  for (int i = 1; i <= n; ++i)
    f[i] = f[i - 1] * (n - i + 1) % MOD * pow_mod(i, MOD - 2) % MOD;
  long long a = m / n, b = m % n;
  for (int i = 0; i <= n; ++i) p[i] = pow_mod(f[i], a);
  g[0][0] = 1;
  for (int i = 1; i <= n; ++i)
    for (int j = 0; j <= k; ++j)
      for (int h = 0; h <= j && h <= n; ++h) {
        if (i <= b)
          g[i][j] = (g[i][j] + g[i - 1][j - h] * p[h] % MOD * f[h] % MOD) % MOD;
        else
          g[i][j] = (g[i][j] + g[i - 1][j - h] * p[h] % MOD) % MOD;
      }
  cout << g[n][k] << endl;
  return 0;
}
