#include <bits/stdc++.h>
using namespace std;
int dx[4]{-1, +1, 0, 0};
int dy[4]{0, 0, -1, +1};
void init() {
  cin.tie(nullptr);
  ios_base::sync_with_stdio(false);
  cout << fixed << setprecision(15);
}
vector<int> a, dp;
int n, k;
bool rec(int p) {
  if (p < 0) return false;
  if (dp[p] == 1) return true;
  if (dp[p] == 0) return false;
  if (p - a.back() < a[0]) {
    dp[p] = 1;
    return true;
  }
  for (const auto& e : a) {
    for (const auto& f : a) {
      if (rec(p - e - f)) {
        dp[p] = 1;
        return true;
      }
    }
  }
  dp[p] = 0;
  return false;
}
int main() {
  init();
  cin >> n >> k;
  a.resize(n);
  for (auto& e : a) cin >> e;
  dp.resize(k + 1);
  fill(dp.begin(), dp.end(), -1);
  for (int i = 0; i < (int)a[0]; i++) dp[i] = 0;
  for (const auto& e : a) dp[e] = 1;
  cout << (rec(k) ? "First" : "Second") << endl;
}
