#include <bits/stdc++.h>
using namespace std;
template <class T>
inline bool chmax(T &a, const T b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
inline bool chmin(T &a, const T b) {
  if (b < a) {
    a = b;
    return 1;
  }
  return 0;
}
const int inf = 1e9 + 10, mod = 1e9 + 7;
const long long llinf = 1e18;
int n, k, mina;
int dp[2][100001];
int rec(vector<int> A, int oddeven, int left) {
  if (dp[oddeven][left] != -2) {
    return dp[oddeven][left];
  }
  if (left < mina) {
    return (oddeven + 1) % 2;
  }
  bool First = true, Second = true;
  for (int i = 0; i < n; i++) {
    int ne = rec(A, (oddeven + 1) % 2, left - A[i]);
    if (ne == oddeven) {
      return oddeven;
    } else if (ne != (oddeven + 1) % 2) {
      Second = false;
    }
  }
  if (Second) {
    return (oddeven + 1) % 2;
  } else {
    return -1;
  }
}
int main() {
  cin >> n >> k;
  vector<int> A(n);
  for (auto &ai : (A)) cin >> ai;
  mina = *min_element((A).begin(), (A).end());
  fill(dp[0], dp[2], -2);
  string ans = rec(A, 0, k) ? "Second" : "First";
  cout << ans << endl;
}
