#include <bits/stdc++.h>
using namespace std;
const int MAXK = 1e5 + 10;
const int MAXN = 1e3 + 10;
int A[MAXN], dp[MAXK], N, K;
int solve(int k, int m) {
  if (dp[k] != -1) return dp[k];
  if (k == 0) return dp[k] = m ^ 1;
  int ans = m ^ 1;
  for (int i = 1; i <= N; i++) {
    if (A[i] > k) continue;
    if (solve(k - A[i], m ^ 1) == m) {
      ans = m;
      break;
    }
  }
  return dp[k] = ans;
}
int main() {
  memset(dp, -1, sizeof(dp));
  cin >> N >> K;
  for (int i = 1; i <= N; i++) {
    cin >> A[i];
  }
  if (solve(K, 1))
    printf("First\n");
  else
    printf("Second\n");
  return 0;
}
