#include <bits/stdc++.h>
using namespace std;
int n, k, mm;
vector<int> A;
vector<vector<short int> > Stones;
char res;
void Recibir() {
  int aux;
  cin >> n >> k;
  A.resize(n);
  for (int i = 0; i < n; i++) cin >> A[i];
  mm = 100001;
  for (int i = 0; i < n; i++) mm = min(mm, A[i]);
  Stones.resize(k + 1);
  for (int i = 0; i < k + 1; i++) Stones[i].assign(2, -1);
}
int Exec(int lf, int ch) {
  if (Stones[lf][ch] != -1) return Stones[lf][ch];
  if (lf - mm < 0) return Stones[lf][ch] = !ch;
  bool flag{false};
  for (int x : A) {
    if (lf - x > 0) {
      if (Exec(lf - x, !ch) == ch) {
        flag = true;
        break;
      }
    } else
      continue;
  }
  if (flag)
    return Stones[lf][ch] = ch;
  else
    return Stones[lf][ch] = !ch;
}
int main() {
  Recibir();
  cout << (Exec(k, 0) == 0 ? "First" : "Second");
  return 0;
}
