#include <bits/stdc++.h>
using namespace std;
template <typename Arg1>
void __f(const char* name, Arg1&& arg1) {
  cerr << name << " : " << arg1 << std::endl;
}
template <typename Arg1, typename... Args>
void __f(const char* names, Arg1&& arg1, Args&&... args) {
  const char* comma = strchr(names + 1, ',');
  cerr.write(names, comma - names) << " : " << arg1 << " | ";
  __f(comma + 1, args...);
}
template <class T, class T2>
T _f_pow(T a, T2 b) {
  T res = 1LL;
  a %= (long long)(1e9 + 7);
  while (b > 0) {
    if (b & 1) res = (res * a) % (long long)(1e9 + 7);
    a = (a * a);
    a %= (long long)(1e9 + 7);
    b >>= 1;
  }
  return (res);
}
int n, k;
int dp[(int)1e5 + 5];
int a[(int)1e3 + 5];
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  ;
  cin >> n >> k;
  for (int i = (1), _b = (n); i <= _b; i++) cin >> a[i];
  for (int i = (1), _b = (k); i <= _b; i++) {
    for (int j = (1), _b = (n); j <= _b; j++) {
      if (a[j] > i) {
        continue;
      }
      dp[i] = !dp[i - a[j]];
    }
  }
  cout << (dp[k] == 1 ? "First\n" : "Second\n");
  return 0;
}
