#include <bits/stdc++.h>
using namespace std;
int taro(vector<int>& A, int k, int mn, vector<int>& dp) {
  int n = A.size();
  if (k < mn) {
    dp[k] = 0;
    return 0;
  }
  cout << dp[k] << "\n";
  if (dp[k] >= 0) return dp[k];
  for (int i = 0; i < n; i++) {
    if (k >= A[i]) {
      if (!taro(A, k - A[i], mn, dp)) {
        dp[k] = 1;
        return 1;
      }
    }
  }
  dp[k] = 0;
  return 0;
}
int main() {
  int n, k;
  cin >> n >> k;
  vector<int> A(n);
  int mn = 1e9;
  for (int i = 0; i < n; i++) {
    cin >> A[i];
    mn = min(mn, A[i]);
  }
  vector<int> dp(k + 1, -1);
  if (taro(A, k, mn, dp))
    cout << "First"
         << "\n";
  else
    cout << "Second"
         << "\n";
  return 0;
}
