#include <bits/stdc++.h>
using namespace std;
const int N = 110;
const int MOD = 1000000007;
int n, kk, c[N][N], d[N][11000], rid[N][N][N];
long long f[N], m;
int lgp(int n, long long k) {
  int a = n, nrr = 1;
  while (k) {
    if (k & 1) nrr = ((long long)nrr * a) % MOD;
    a = (1LL * a * a) % MOD;
    k /= 2;
  }
  return nrr;
}
int main() {
  int i, j, k;
  cin >> n >> m >> kk;
  for (i = 1; i <= n; ++i) {
    f[i] = m / n;
    if (m - f[i] * n >= i) ++f[i];
  }
  c[0][0] = 1;
  for (i = 1; i <= n; i++) {
    c[i][0] = 1;
    for (j = 1; j <= n; j++) c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]) % MOD;
  }
  for (i = 1; i <= n; ++i)
    for (j = 0; j <= n; ++j)
      for (k = 1; k <= n; ++k) {
        rid[i][j][k] = lgp(c[i][j], f[k]);
      }
  for (i = 0; i <= n; ++i) d[1][i] = rid[n][i][1];
  for (i = 2; i <= n; ++i) {
    for (j = 0; j <= kk; ++j)
      if (d[i - 1][j]) {
        for (k = 0; k <= n && k + j <= kk; ++k) {
          d[i][j + k] =
              (d[i][j + k] + ((1LL * d[i - 1][j] * rid[n][k][i]) % MOD)) % MOD;
        }
      }
  }
  cout << d[n][kk];
  return 0;
}
