#include <bits/stdc++.h>
using namespace std;
using i32 = int32_t;
using i64 = int64_t;
using vec_i64 = vector<i64>;
using vvec_i64 = vector<vec_i64>;
bool rec(i32 i, vec_i64& a_list, bool first_turn, vec_i64& memo) {
  if (memo.at(i) != 0) return memo.at(i) == 1 ? true : false;
  if (first_turn) {
    for (i32 j = 0; j < a_list.size(); j++) {
      if (i < a_list.at(j)) break;
      if (rec(i - a_list.at(j), a_list, false, memo)) {
        memo.at(i) = 1;
        break;
      }
      if (memo.at(i) == 0) memo.at(i) = 2;
    }
  } else {
    for (i32 j = 0; j < a_list.size(); j++) {
      if (i < a_list.at(j)) break;
      if (!rec(i - a_list.at(j), a_list, true, memo)) {
        memo.at(i) = 2;
        break;
      }
    }
    if (memo.at(i) == 0) memo.at(i) = 1;
  }
  return memo.at(i) == 1 ? true : false;
}
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  i32 N, K;
  cin >> N >> K;
  vec_i64 a_list(N);
  for (i32 i = 0; i < N; i++) {
    cin >> a_list.at(i);
  }
  vec_i64 memo(K + 1);
  bool first_winning = rec(K, a_list, true, memo);
  if (first_winning)
    cout << "First"
         << "\n";
  else
    cout << "Second"
         << "\n";
  return 0;
}
