#include <bits/stdc++.h>
using namespace std;
const double PI = 3.14159265358979323846;
template <class T>
bool chmax(T &a, const T &b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool chmin(T &a, const T &b) {
  if (b < a) {
    a = b;
    return 1;
  }
  return 0;
}
long long n, k;
long long a[120];
long long dp[(int)1e5 + 10];
int main() {
  cout << fixed << setprecision(10);
  cin >> n >> k;
  for (long long i = 0; i < n; i++) cin >> a[i];
  memset(dp, 1, sizeof(dp));
  dp[k] = 1;
  queue<long long> q;
  q.push(k);
  set<long long> first, second;
  first.insert(k);
  while (!q.empty()) {
    long long now = q.front();
    q.pop();
    for (long long i = 0; i < n; i++) {
      long long nxt = now - a[i];
      if (nxt < 0) continue;
      if (first.count(nxt) && dp[now] == 1) continue;
      if (second.count(nxt) && dp[now] == 0) continue;
      chmin(dp[nxt], dp[now] ^ 1);
      if (dp[nxt] == 0) first.insert(nxt);
      if (dp[nxt] == 1) second.insert(nxt);
      q.push(nxt);
    }
  }
  bool ans = false;
  for (long long i = 0; i < a[0]; i++) {
    if (dp[i] == 0) {
      ans = true;
      break;
    }
  }
  if (ans)
    puts("First");
  else
    puts("Second");
}
