#include <bits/stdc++.h>
#pragma GCC optimize("O2")
#pragma GCC diagnostic ignored "-Wunused-variable"
#pragma GCC diagnostic ignored "-Wunused-result"
#pragma GCC diagnostic ignored "-Wunused-label"
using namespace std;
const long long MOD = 1e+9 + 7;
const long long INF = 0x3f3f3f3f3f3f3f3f;
const int INFi = 0x3f3f3f3f;
const long long MAXN = 1e+6 + 7;
int main() {
  cin.sync_with_stdio(0);
  cin.tie(0);
  cin.exceptions(cin.failbit);
  ;
  int i, j, n, k;
  cin >> n >> k;
  vector<int> A(n), dp(2 * k);
  for (auto& a : A) {
    cin >> a;
    dp[a] = 1;
  }
  for (auto& a : A) {
    for (i = 0; i < (int)(dp).size() - a; i++) {
      if (!dp[i]) dp[i + a] = 1;
    }
  }
  if (0)
    for (auto& a : dp) cout << a << ' ';
  if (0) cout << endl;
  if (dp[k])
    cout << "First";
  else
    cout << "Second";
  cout << '\n';
  return 0;
}
