func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MX = 102, md = 1000000007;   int n, k, i, j, e, c[MX][MX], f[MX][MX * MX];   long long m, p[MX], q[MX];   bool ifq;   long long pw(long long a, long long b) {     if (b == 0) return 1LL;     if (b & 1) return (a * pw(a, b - 1)) % md;     long long x = pw(a, b / 2);     return (x * x) % md;   }   int main() {     cin >> n >> m >> k;     for (i = 0; i <= n; i++) {       c[i][0] = 1;       for (j = 1; j <= i; j++) c[i][j] = (c[i - 1][j - 1] + c[i - 1][j]) % md;     }     for (i = 0; i <= n; i++) {       p[i] = pw(c[n][i], m / n);       q[i] = (p[i] * c[n][i]) % md;     }     f[0][0] = 1;     for (i = 0; i < n; i++) {       ifq = (i < (m % n));       for (j = 0; j <= k; j++)         if (f[i][j])           for (e = 0; e <= n && j + e <= k; e++)             f[i + 1][j + e] =                 (f[i + 1][j + e] + f[i][j] * (ifq ? q[e] : p[e])) % md;     }     cout << f[n][k] <<   n ;     return 0;   }   