#include <bits/stdc++.h>
using namespace std;
const double pi = 3.141592653589793;
const long long INF = 1e18;
template <class T>
inline bool chmax(T& a, T b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
inline bool chmin(T& a, T b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
int n, k, min_a = 10000;
vector<int> a(100);
vector<vector<bool> > dp;
int counts = 0;
int solve(int x, int player) {
  if (x < 0) return (player + 1) % 2;
  if (x < min_a) {
    dp[x][(player + 1) % 2] = true;
    return (player + 1) % 2;
  }
  if (dp[x][player] == true) return player;
  bool ok = false;
  for (long long i = 0; i < (long long)(n); i++) {
    int y = solve(x - a[i], (player + 1) % 2);
    if ((y == player)) ok = true;
  }
  if (ok) {
    dp[x][player] = true;
    return player;
  } else {
    dp[x][(player + 1) % 2] = true;
    return (player + 1) % 2;
  }
}
int main() {
  cin >> n >> k;
  dp.resize(k + 2);
  for (long long i = 0; i < (long long)(k + 2); i++) dp[i].resize(2);
  for (long long i = 0; i < (long long)(n); i++) {
    cin >> a[i];
    chmin(min_a, a[i]);
  }
  int ok = solve(k, 0);
  if (ok == 0)
    cout << "First" << endl;
  else
    cout << "Second" << endl;
}
