#include <bits/stdc++.h>
using namespace std;
const long long modnum = (long long)1E9 + 7;
long long f[111][111 * 111];
long long C[111][111];
int n, k;
long long m;
long long p1[111], p2[111];
long long pow(long long a, long long b) {
  long long x = 1;
  for (; b > 0; b >>= 1, a = (a * a) % modnum)
    if (b & 1) x = (x * a) % modnum;
  return x;
}
int main() {
  cin >> n >> m >> k;
  for (int e = 0; e <= n; ++e) C[e][0] = C[e][e] = 1;
  for (int s = 1; s <= n; ++s)
    for (int jj = 1; jj < s; ++jj)
      C[s][jj] = (C[s - 1][jj - 1] + C[s - 1][jj]) % modnum;
  long long cnt = m / n;
  for (int gh = 0; gh <= n; ++gh) {
    p1[gh] = pow(C[n][gh], cnt);
    p2[gh] = pow(C[n][gh], cnt + 1);
  }
  memset(f, 0, sizeof(f));
  f[0][0] = 1;
  for (int i = 1; i <= n; ++i) {
    long long *p;
    if (m % n >= i)
      p = p2;
    else
      p = p1;
    for (int j = 0; j <= (i - 1) * n; ++j) {
      for (int cur = 0; cur <= n; ++cur) {
        long long tmp = (f[i - 1][j] * p[cur]) % modnum;
        f[i][j + cur] = (f[i][j + cur] + tmp) % modnum;
      }
    }
  }
  long long ans = f[n][k];
  ans = (ans % modnum + modnum) % modnum;
  cout << ans << endl;
  return 0;
}
