#include <bits/stdc++.h>
using namespace std;
int n, k;
long long m, dp[105][105 * 105], f[105][105 * 105], a[105];
int power(int x, long long t) {
  if (t == 1) return x;
  long long tmp = power(x, t / 2);
  tmp = tmp * tmp % 1000000007;
  if (t & 1) tmp = tmp * x % 1000000007;
  return tmp;
}
int C(int m, int n) {
  if (f[m][n]) return f[m][n];
  long long tmp = 1;
  for (int i = m + 1; i <= n; i++)
    tmp = tmp * i % 1000000007 * power((i - m), 1000000007 - 2) % 1000000007;
  f[m][n] = tmp;
  return tmp;
}
int main() {
  scanf("%d%I64d%d", &n, &m, &k);
  dp[1][0] = 1;
  for (int i = 1; i <= n; i++) {
    long long num = (m - i + n) / n;
    for (int j = 0; j <= n; j++) {
      a[j] = power(C(j, n), num);
    }
    for (int j = 0; j <= n * n; j++)
      if (dp[i][j])
        for (int p = 0; p <= n; p++)
          dp[i + 1][j + p] =
              (dp[i + 1][j + p] + dp[i][j] * a[p] % 1000000007) % 1000000007;
  }
  printf("%d", dp[n + 1][k]);
}
