func_code_string: #include <bits/stdc++.h>   using namespace std;   long long lpow(long long a, long long n) {     long long c = 1ll;     while (n) {       if (n % 2) c = (c * a) % 1000000007ll;       a = (a * a) % 1000000007ll;       n /= 2;     }     return c;   }   long long c[104][105], C[105][105], a[10005];   int main() {     long long n, m, k, x;     int i, j;     cin >> n >> m >> k;     for (i = 0; i <= 100; i++) {       c[i][0] = 1ll;       c[i][1] = i;       for (j = 2; j <= i; j++)         c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]) % 1000000007ll;     }     for (i = 0; i < n; i++) {       x = m / n;       if (m % n > i) x++;       for (j = 0; j <= n; j++) C[i][j] = lpow(c[n][j], x);     }     a[0] = 1ll;     for (i = 0; i < n; i++) {       for (j = k; j >= 0; j--)         for (x = n; x >= 1; x--)           if (j >= x)             a[j] = (a[j] + (a[j - x] * C[i][x]) % 1000000007ll) % 1000000007ll;     }     cout << a[k] << endl;     return 0;   }   