#include <bits/stdc++.h>
using namespace std;
const int KMAX = 100005;
const int NMAX = 105;
int dp[KMAX];
int a[NMAX], top;
int minim = 1e5 + 5, N, K;
inline int DFS(int node, int player) {
  int i;
  if (dp[node]) return dp[node];
  if (node < minim) {
    dp[node] = ((player - 1) ^ 1) + 1;
    return dp[node];
  } else {
    bool ok = 0;
    for (i = 1; !ok && i <= N; ++i) {
      if (node - a[i] >= 0) {
        if (player == DFS(node - a[i], ((player - 1) ^ 1) + 1))
          dp[node] = player, ok = 1;
      }
    }
    if (!ok) dp[node] = ((player - 1) ^ 1) + 1;
    return dp[node];
  }
}
int main() {
  int i, j;
  cin >> N >> K;
  for (i = 1; i <= N; ++i) {
    cin >> a[i];
    minim = min(a[i], minim);
  }
  if (DFS(K, 2) == 1)
    cout << "Second";
  else
    cout << "First";
  return 0;
}
