#include <bits/stdc++.h>
using namespace std;
map<vector<int>, double> memo;
double Go(const vector<int>& v, int N, int p) {
  auto it = memo.find(v);
  if (it != memo.end()) return it->second;
  if (N == 0) return 0;
  double r = 0;
  vector<int> vv(v);
  for (int i = 1; i <= p; ++i) {
    if (v[i] == 0) continue;
    --vv[i];
    r += v[i] * (1 + Go(vv, N - 1, p - i));
    ++vv[i];
  }
  return memo[v] = r / N;
}
int main() {
  int N;
  cin >> N;
  vector<int> num(51);
  for (int n = 0; n < N; ++n) {
    int t;
    cin >> t;
    ++num[t];
  }
  int P;
  cin >> P;
  printf("%.08lf\n", Go(num, N, P));
}
