#include <bits/stdc++.h>
using namespace std;
template <class A, class B>
ostream& operator<<(ostream& out, const pair<A, B>& a) {
  return out << "(" << a.first << ", " << a.second << ")";
}
template <class A>
ostream& operator<<(ostream& out, const vector<A>& a) {
  out << "[";
  for (auto it = a.begin(); it != a.end(); ++it) {
    if (it != a.begin()) out << ", ";
    out << *it;
  }
  return out << "]";
}
long long dp[100005];
vector<long long> a;
long long n, k;
long long go(long long i) {
  if (i == 0) return 0;
  long long& ans = dp[i];
  if (ans != -1) return ans;
  ans = 0;
  for (auto p : a) {
    if (p <= i && go(i - p) == 1) ans = 1;
  }
  return ans;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  long long i, j, x, t, y;
  cin >> n >> k;
  for (i = 0; i < n; i++) {
    cin >> x;
    a.push_back(x);
  }
  memset(dp, -1, sizeof(dp));
  long long ans = go(k);
  cout << (ans ? "First" : "Second");
}
