#include <bits/stdc++.h>
using namespace std;
template <typename T>
using second = set<T>;
template <typename T>
using v = vector<T>;
template <typename T1, typename T2>
using p = pair<T1, T2>;
const int Max = 4e3 + 100;
const int MOD = 1e9 + 7;
const long long INF = 1e18;
int n, k;
bool dp[Max];
long long A[Max];
int main() {
  cin >> n >> k;
  for (int i = 0; i < n; i++) cin >> A[i];
  dp[0] = false;
  for (int i = 1; i <= k; i++) {
    bool foundLoose = false;
    for (auto second : A) {
      if (second == 0) break;
      if (i >= second) {
        foundLoose = !dp[i - second];
      }
      if (foundLoose) break;
    }
    dp[i] = foundLoose;
  }
  if (dp[k])
    cout << "First";
  else
    cout << "Second";
}
