#include <bits/stdc++.h>
using namespace std;
vector<vector<vector<double>>> dp;
double culc(int a1, int a2, int a3) {
  if (dp[a1][a2][a3] != -1) {
    return dp[a1][a2][a3];
  }
  double result = 0;
  if (a1 > 0) {
    result += culc(a1 - 1, a2, a3) * a1;
  }
  if (a2 > 0) {
    result += culc(a1 + 1, a2 - 1, a3) * a2;
  }
  if (a3 > 0) {
    result += culc(a1, a2 + 1, a3 - 1) * a3;
  }
  result /= (a1 + a2 + a3);
  dp[a1][a2][a3] = result;
  return result;
}
int main(void) {
  int N, K;
  cin >> N >> K;
  int a[N];
  for (int i = 0; i < (int)(N); i++) {
    cin >> a[i];
  }
  int dp[10000];
  for (int k = 0; k < (int)(K + 1); k++) {
    int lose = 0, cnt = 0;
    for (int i = 0; i < (int)(N); i++) {
      if (0 <= k - a[i]) {
        cnt++;
        if (!dp[k - a[i]]) lose++;
      }
    }
    if (cnt == 0)
      dp[k] = 0;
    else if (0 < lose)
      dp[k] = 1;
    else
      dp[k] = 0;
  }
  cout << dp[K];
  return 0;
}
