#include <bits/stdc++.h>
using namespace std;
const double EPS = 1e-7;
const long long SZ = 120, SSZ = 100010, APB = 52, one = 11;
const long long INF = 0x7f7f7f7f7f7f7f7f, mod = 1000000007;
long long n, m, arr[SZ], sum;
double pre[SSZ], cur[SSZ], dp[SZ][SSZ];
void init() {
  cin >> n >> m;
  for (int i = 1; i <= n; ++i) cin >> arr[i], sum += arr[i];
  for (int i = 1; i <= m; ++i) {
    if (i != arr[1]) dp[1][i] = 1.0 / (m - 1);
    pre[i] = pre[i - 1] + dp[1][i];
  }
  for (int i = m + 1; i <= n * m; ++i) pre[i] += pre[i - 1];
  for (int i = 2; i <= n; ++i) {
    memset(cur, 0, sizeof(cur));
    for (long long j = i; j <= n * m; ++j) {
      double u = 0, v = 0;
      int num = m - 1;
      if (j >= (m + 1)) u = pre[j - m - 1];
      if (j >= arr[i]) v = dp[i - 1][j - arr[i]];
      dp[i][j] = (pre[j - 1] - u - v) / (num);
      cur[j] = dp[i][j];
      cur[j] += cur[j - 1];
    }
    memcpy(pre, cur, sizeof(cur));
  }
  double res = 0;
  for (int i = 1; i < sum; ++i) {
    res += dp[n][i];
  }
  res = res * (m - 1) + 1;
  cout << fixed << setprecision(20) << res << endl;
}
void work() {}
int main() {
  std::ios::sync_with_stdio(0);
  int casenum;
  {
    init();
    work();
  }
  return 0;
}
