#include <bits/stdc++.h>
int N;
int dp[100000];
bool dfs(int s[100], int K) {
  if (K == 0) return false;
  if (dp[K] >= 0) return dp[K];
  bool result = false;
  for (int i = 0; i < N; i++) {
    if (K >= s[i]) {
      result |= !dfs(s, K - s[i]);
    }
  }
  return dp[K] = result;
}
int main() {
  int K;
  memset(dp, -1, sizeof(dp));
  scanf("%d%d", &N, &K);
  int stones[100];
  for (int i = 0; i < N; i++) {
    scanf("%d", &stones[i]);
  }
  printf(dfs(stones, K) ? "First\n" : "Second\n");
  return 0;
}
