#include <bits/stdc++.h>
using namespace std;
template <class S, class T>
ostream& operator<<(ostream& o, const pair<S, T>& p) {
  return o << "(" << p.first << "," << p.second << ")";
}
template <class T>
ostream& operator<<(ostream& o, const vector<T>& vc) {
  o << "{";
  for (const T& v : vc) o << v << ",";
  o << "}";
  return o;
}
using ll = long long;
template <class T>
using V = vector<T>;
template <class T>
using VV = vector<vector<T>>;
int main() {
  int N, X;
  cin >> N >> X;
  V<int> a(N);
  for (int i = 0; i < (int)(N); i++) cin >> a[i];
  V<bool> Awin(X + 1);
  for (int x = 0; x < (int)(X + 1); x++) {
    for (int i = 0; i < (int)(N); i++)
      if (x >= a[i] && !Awin[x + a[i]]) Awin[x] = 1;
  }
  if (Awin[X])
    puts("First");
  else
    puts("Second");
}
