#include <bits/stdc++.h>
using namespace std;
int dp[(int)1e5 + 5];
void init() {
  int i;
  for (i = 0; i < (int)1e5 + 5; i++) dp[i] = -1;
}
int canWin(int k, int min, int n, int a[]) {
  if (k < min) return 0;
  if (dp[k] != -1) return dp[k];
  int status = 0, i;
  for (i = 0; i < n; i++) {
    if (canWin(k - a[i], min, n, a) == 0) status = 1;
  }
  dp[k] = status;
  return dp[k];
}
int main() {
  int n, k, a[(int)1e5 + 5], min = (int)1e9 + 2, i;
  init();
  scanf("%d%d", &n, &k);
  for (i = 0; i < n; i++) {
    scanf("%d", &a[i]);
    if (min > a[i]) min = a[i];
  }
  if (canWin(k, min, n, a))
    printf("First\n");
  else
    printf("Second\n");
}
