#include <bits/stdc++.h>
using namespace std;
int n, k;
vector<int> v;
vector<vector<int>> dp;
int solve(int turn, int stones) {
  if (stones < v[0]) {
    if (turn)
      return 0;
    else
      return 1;
  }
  if (dp[turn][stones] != -1) return dp[turn][stones];
  int ret;
  if (turn)
    ret = -1;
  else
    ret = 2;
  for (int i = 0; i < n; i++) {
    if (stones < v[i]) break;
    if (turn) {
      ret = max(ret, solve(1 - turn, stones - v[i]));
    } else {
      ret = min(ret, solve(1 - turn, stones - v[i]));
    }
  }
  dp[turn][stones] = ret;
  return ret;
}
int main() {
  cin >> n >> k;
  v.resize(n);
  dp.resize(2);
  for (int i = 0; i < 2; i++) dp[i].resize(k, -1);
  for (int i = 0; i < n; i++) {
    cin >> v[i];
  }
  sort(v.begin(), v.end());
  if (solve(1, k))
    cout << "First" << endl;
  else
    cout << "Second" << endl;
  return 0;
}
