#include <bits/stdc++.h>
using namespace std;
const long long N = (long long)1e5 + 5;
long long dp[N][2], n;
vector<long long> v;
bool rec(long long k, long long p) {
  if (dp[k][p] != -1) return dp[k][p];
  if (p == 0) {
    dp[k][p] = 1;
    for (auto d : v) {
      if (d <= k) {
        long long a = rec(k - d, 1);
        if (a == 0) dp[k][p] = 0;
      }
    }
  } else {
    dp[k][p] = 0;
    for (auto d : v) {
      if (d <= k) {
        long long a = rec(k - d, 0);
        if (a == 1) dp[k][p] = 1;
      }
    }
  }
  return dp[k][p];
}
int32_t main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  ;
  cin >> n;
  long long k, x;
  cin >> k;
  for (long long i = 0; i < n; i++) {
    cin >> x;
    v.push_back(x);
  }
  memset(dp, -1, sizeof(dp));
  ;
  bool ans = rec(0, k);
  if (ans == 1) {
    cout << "First";
  } else
    cout << "Second";
  return 0;
}
