func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAX_N = 210, MAX_K = 1010, MOD = 1e9 + 7;   int N, K, arr[MAX_N], dp[MAX_N][MAX_N][MAX_K];   void add(int& a, long long b) {     b %= MOD;     a = (a + b) % MOD;   }   int solve() {     sort(arr + 1, arr + N + 1);     dp[0][0][0] = 1;     for (int i = 1; i <= N; i++) {       for (int j = 0; j <= i; j++) {         for (int k = 0; k <= K; k++) {           int v = dp[i - 1][j][k];           int nk = k + j * (arr[i] - arr[i - 1]);           if (nk > K) continue;           add(dp[i][j][nk], v);           add(dp[i][j][nk], 1LL * j * v);           add(dp[i][j + 1][nk], v);           if (j) add(dp[i][j - 1][nk], 1LL * j * v);         }       }     }     int ret = 0;     for (int k = 0; k <= K; k++) {       add(ret, dp[N][0][k]);     }     return ret;   }   void read() {     cin >> N >> K;     for (int i = 1; i <= N; i++) cin >> arr[i];   }   int main() {     read();     cout << solve() << endl;     return (0);   }   