#include <bits/stdc++.h>
using namespace std;
long long n, k, a[205], dp[3][205][1005];
const long long mod = 1e9 + 7;
int main() {
  cin.tie(0), cout.tie(0), ios::sync_with_stdio(0);
  cin >> n >> k;
  for (int i = 1; i <= n; i++) cin >> a[i];
  sort(a + 1, a + 1 + n);
  dp[0][0][0] = 1;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j <= i + 1; j++) {
      for (int l = 0; l <= k; l++) {
        int sum = l + j * (a[i + 1] - a[i]);
        if (sum <= k) {
          dp[1][j][sum] += j * dp[0][j][l];
          dp[1][j][sum] %= mod;
          dp[1][j][sum] += dp[0][j][l];
          dp[1][j][sum] %= mod;
          if (j >= 1) {
            dp[1][j - 1][sum] += j * dp[0][j][l];
            dp[1][j - 1][sum] %= mod;
          }
          dp[1][j + 1][sum] += dp[0][j][l];
          dp[1][j + 1][sum] %= mod;
        }
      }
    }
    for (int j = 0; j <= n; j++) {
      for (int l = 0; l <= k; l++) {
        dp[0][j][l] = dp[1][j][l];
        dp[1][j][l] = 0;
      }
    }
  }
  long long sum = 0;
  for (int i = 0; i <= k; i++) {
    sum += dp[0][0][i] % mod;
    sum %= mod;
  }
  cout << sum;
}
