#include <bits/stdc++.h>
int MOD = int(1e9) + 7;
inline int add(int a, int b) {
  return (a + b >= MOD) ? (a + b - MOD) : (a + b);
}
inline void inc(int &a, int b) { a = add(a, b); }
inline int sub(int a, int b) { return (a - b < 0) ? (a - b + MOD) : (a - b); }
inline void dec(int &a, int b) { a = sub(a, b); }
inline int mul(int a, int b) { return (a * 1ll * b) % MOD; }
using namespace std;
const int N = 100, M = 1000, NM = N * M;
long double dp[N + 1][NM + 1];
int arr[N + 1];
double f(int i, int j) {
  if (j < 0) return 0;
  if (j > NM) return dp[i][NM];
  return dp[i][j];
}
int main() {
  int n, m, sum = 0;
  scanf("%d %d", &n, &m);
  if (m == 1) {
    puts("1");
    return 0;
  }
  fill(dp[0], dp[0] + NM, 1);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &arr[i]);
    sum += arr[i];
  }
  for (int i = 1; i <= n; i++) {
    int p = arr[i];
    for (int j = 0; j <= N * M; j++) {
      dp[i][j] = (f(i - 1, j - 1) - f(i - 1, j - p) + f(i - 1, j - (p + 1)) -
                  f(i - 1, j - m - 1)) /
                 (m - 1);
      if (j > 0) dp[i][j] += dp[i][j - 1];
    }
  }
  long double ans = dp[n][sum - 1] * (m - 1) + 1;
  printf("%.12f\n", (double)ans);
  return 0;
}
