#include <bits/stdc++.h>
using namespace std;
const long long INF = 1LL << 60;
const long long MOD = 1000000007;
template <class T>
inline bool chmin(T& a, T b) {
  if (a > b) {
    a = b;
    return true;
  }
  return false;
}
template <class T>
inline bool chmax(T& a, T b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}
bool step(int m, int k);
int N, K;
vector<int> ai;
vector<vector<int>> memo;
int main() {
  cin >> N >> K;
  ai = vector<int>(N);
  for (int i = 0; i < N; i++) cin >> ai.at(i);
  memo = vector<vector<int>>(N + 1, vector<int>(K + 100, -1));
  if (step(0, K)) {
    cout << "First" << endl;
  } else {
    cout << "Second" << endl;
  }
}
bool step(int m, int k) {
  int next;
  if (k == 0) {
    if (m == 0)
      return false;
    else
      return true;
  }
  if (memo.at(m).at(k) >= 0) return memo.at(m).at(k);
  if (m == 0) {
    next = 1;
  } else {
    next = 0;
  }
  for (int i : ai) {
    if (i > k) continue;
    bool tmp = step(next, k - i);
    if (tmp) {
      if (m == 0) {
        return memo.at(m).at(k) = false;
      } else {
        return memo.at(m).at(k) = true;
      }
    }
  }
  if (m == 0) {
    return memo.at(m).at(k) = true;
  } else {
    return memo.at(m).at(k) = false;
  }
}
