#include <bits/stdc++.h>
int main() {
  int N, K;
  std::cin >> N >> K;
  std::vector<int> a(N);
  for (int i = 0; i < N; i++) {
    std::cin >> a[i];
  }
  std::vector<int> grundy(K + 1, 0);
  std::set<int> st;
  for (int i = 0; i <= 2 * K; i++) {
    st.insert(i);
  }
  for (int i = 0; i <= K; i++) {
    std::set<int> next = st;
    for (int j = 0; j < N; j++) {
      if (i >= a[j]) {
        next.erase(grundy[i - a[j]]);
      }
    }
    grundy[i] = *next.begin();
  }
  std::cout << (grundy[K] == 0 ? "Second" : "First") << std::endl;
  return 0;
}
