#include <bits/stdc++.h>
using namespace std;
long long n, K, lowest = INT_MAX;
std::vector<long long> A;
long long store[111111];
long long highest_depth(long long k);
int main() {
  cin >> n >> K;
  for (int i = 0; i < n; i++) {
    long long temp;
    cin >> temp;
    lowest = min(temp, lowest);
    A.push_back(temp);
  }
  if (highest_depth(K) % 2)
    cout << "First" << endl;
  else
    cout << "Second" << endl;
  return 0;
}
long long highest_depth(long long k) {
  if (store[k]) {
    return store[k];
  }
  if (k < lowest) return 0;
  long long var = 0;
  for (int i = 0; i < n; i++) {
    long long temp = highest_depth(k - A[i]) + 1;
    var = max(var, temp);
  }
  store[k] = var;
  return var;
}
