#include <bits/stdc++.h>
using namespace std;
vector<long long> A;
int solve(int dp[], long long k) {
  if (dp[k] != 0) {
    return dp[k];
  }
  for (long long i = 0; i < A.size(); i++) {
    if (k - A[i] < 0) {
      continue;
    } else {
      if (solve(dp, k - A[i]) == 2) {
        dp[k] = 1;
        return dp[k];
      }
    }
  }
  dp[k] = 2;
  return dp[k];
}
int main() {
  long long N, K;
  cin >> N >> K;
  for (long long i = 0; i < N; i++) {
    long long a;
    cin >> a;
    A.push_back(a);
  }
  int dp[K + 1];
  memset(dp, 0, sizeof(dp));
  dp[0] = 2;
  if (solve(dp, K) == 1) {
    cout << "First";
  } else {
    cout << "Second";
  }
  return 0;
}
