#include <bits/stdc++.h>
using namespace std;
int dp[2][100009];
int *arr;
int n;
int fun(int turn, int k) {
  if (dp[turn % 2][k] != -1) return dp[turn % 2][k];
  int ans = 0;
  for (int i = 0; i < n; i++) {
    ans = ans || fun(turn + 1, k - arr[i]);
    if (ans) {
      dp[turn % 2][k] = ans;
      return ans;
    }
  }
  dp[turn % 2][k] = ans;
  return ans;
}
void setdp(int k) {
  memset(dp, -1, sizeof(dp));
  for (int i = 0; i < k; i++) {
    dp[0][i] = 0;
    dp[1][i] = 1;
  }
  return;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int k;
  cin >> n >> k;
  arr = new int[n];
  int minval = 9999999;
  for (int i = 0; i < n; i++) {
    cin >> arr[i];
    if (arr[i] < minval) minval = arr[i];
  }
  setdp(minval);
  string ans = (fun(0, k) == 1 ? "First\n" : "Second\n");
  cout << ans;
}
