#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
char _;
using namespace std;
int main() {
  int n, K;
  do {
    while ((n = getchar()) < '0')
      ;
    for (n -= '0'; '0' <= (_ = getchar()); n = (n << 3) + (n << 1) + _ - '0')
      ;
  } while (0);
  do {
    while ((K = getchar()) < '0')
      ;
    for (K -= '0'; '0' <= (_ = getchar()); K = (K << 3) + (K << 1) + _ - '0')
      ;
  } while (0);
  int arr[100];
  for (int i = 0; i < n; ++i) {
    int a;
    do {
      while ((a = getchar()) < '0')
        ;
      for (a -= '0'; '0' <= (_ = getchar()); a = (a << 3) + (a << 1) + _ - '0')
        ;
    } while (0);
    arr[i] = a;
  }
  int dp[101];
  memset(dp, 0, sizeof(dp));
  ;
  dp[0] = 0;
  for (int i = 1; i <= K; ++i) {
    for (int j = 0; j < n; ++j) {
      if (i - arr[j] < 0) {
        dp[i] = max(dp[i], 0);
      } else {
        dp[i] = max(dp[i], abs(dp[i - arr[j]] - 1));
      }
    }
  }
  printf(dp[K] == 1 ? "First\n" : "Second\n");
  return 0;
}
