#include <bits/stdc++.h>
using namespace std;
const int modulo = 1000000007;
int f[101][10001], n, k, comb[101][101], g[101][101];
long long m;
int power(const int &a, const long long &b) {
  if (!b) return 1;
  int tmp = power(a, b >> 1);
  tmp = 1LL * tmp * tmp % modulo;
  if (b & 1) tmp = 1LL * tmp * a % modulo;
  return tmp;
}
int main(int ac, char **av) {
  cin >> n >> m >> k;
  comb[0][0] = 1;
  for (int i = 1; i <= n; ++i) {
    comb[i][0] = comb[i][i] = 1;
    for (int j = 1; j < n; ++j) {
      comb[i][j] = comb[i - 1][j] + comb[i - 1][j - 1];
      if (comb[i][j] >= modulo) comb[i][j] -= modulo;
    }
  }
  for (int i = 1; i <= n; ++i)
    for (int j = 0; j <= n; ++j) g[i][j] = power(comb[n][j], (m - i) / n + 1);
  f[0][0] = 1;
  for (int i = 1; i <= n; ++i)
    for (int t = 0; t <= k; ++t) {
      if (t > i * n) break;
      for (int j = 0; j <= n; ++j) {
        if (j > t) break;
        int s = 1LL * g[i][j] * f[i - 1][t - j] % modulo;
        f[i][t] += s;
        if (f[i][t] >= modulo) f[i][t] -= modulo;
      }
    }
  cout << f[n][k] << endl;
  return 0;
}
