func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, a[201], dp[201][201][1001];   const long long int MOD = 1e9 + 7;   int solve(int i, int g, int k) {     if (g < 0 || k < 0) return 0;     if (i == n) return (g == 0);     if (dp[i][g][k] != -1) return dp[i][g][k];     long long int ret = 0;     int nk = k - g * (a[i] - a[i - 1]);     if (nk >= 0) {       ret = (ret + 1LL * g * solve(i + 1, g - 1, nk)) % MOD;       ret = (ret + 1LL * (g + 1) * solve(i + 1, g, nk)) % MOD;       ret = (ret + 1LL * solve(i + 1, g + 1, nk)) % MOD;     }     return dp[i][g][k] = ret;   }   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     int k;     cin >> n >> k;     for (int i = 0; i < n; i++) cin >> a[i];     sort(a, a + n);     memset(dp, -1, sizeof dp);     cout << solve(0, 0, k);   }   