func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 105;   const int mod = 1e9 + 7;   inline void MOD(int &x) {     if (x >= mod) x -= mod;   }   int n, m, k;   int dp[2][N][N][N], C[N][N], r;   int ans;   int main() {     for (int i = 0; i <= 100; i++) {       C[i][0] = 1;       for (int j = 1; j <= i; j++)         C[i][j] = min(C[i - 1][j - 1] + C[i - 1][j], 101);     }     scanf( %d%d%d , &n, &m, &k);     r = 0;     for (int j = 2; j <= n + 1; j++) dp[r][j][j - 1][1] = 1;     for (int i = 1; i <= m; i++) {       for (int j = 1 + i; j <= n + 1; j++)         for (int q = 1; q <= k; q++)           ans = ((long long)dp[r][j][0][q] * (m - i + 1) + ans) % (long long)mod,           dp[r][j][0][q] = 0;       if (i == m) break;       for (int j = 1 + i; j <= n + 1; j++)         for (int p = 1; p < j; p++)           for (int q = 1; q <= k; q++)             if (dp[r][j][p][q]) {               for (int t = p; j + t <= n + 1 && q * C[t - 1][p - 1] <= k; t++)                 MOD(dp[r ^ 1][j + t][t - p][q * C[t - 1][p - 1]] +=                     dp[r][j][p][q]);               dp[r][j][p][q] = 0;             }       r ^= 1;     }     printf( %d n , ans);     return 0;   }   