#include <bits/stdc++.h>
using namespace std;
int dp[(int)1e5 + 5];
bool recur(vector<int> &inp, int k) {
  if (k < (*min_element(inp.begin(), inp.end()))) return false;
  if (dp[k] != -1) return dp[k];
  for (int i = 0; i < inp.size(); i++) {
    if (recur(inp, k - inp[i]) == false) {
      return dp[k] = true;
    }
  }
  return dp[k] = false;
}
void solve() {
  int n, k;
  cin >> n >> k;
  memset(dp, -1, sizeof(dp));
  vector<int> inp(n);
  vector<int> used(n, 0);
  for (int i = 0; i < n; i++) {
    cin >> inp[i];
  }
  if (recur(inp, k))
    cout << "First";
  else
    cout << "Second";
}
int main() {
  int t = 1;
  for (int i = 0; i < t; i++) {
    solve();
  }
  return 0;
}
