#include <bits/stdc++.h>
using namespace std;
const long mod = 1e9 + 7;
const long LINF = 1LL << 62;
const int INF = 1000000000;
vector<int> a;
int memo[100001][2];
int N;
int dfs(int k, int c) {
  if (memo[k][c] == 0) return memo[k][c];
  for (int i = 0; i < N; i++) {
    if (k - a[i] < 0) break;
    if (c) {
      if (dfs(k - a[i], c ^ 1)) return memo[k][c] = c;
    } else {
      if (!dfs(k - a[i], c ^ 1)) return memo[k][c] = c;
    }
  }
  return memo[k][c] = c ^ 1;
}
int main() {
  int K;
  cin >> N >> K;
  for (int i = 0; i < N; i++) {
    int x;
    cin >> x;
    a.push_back(x);
  }
  memset(memo, -1, sizeof(memo));
  if (dfs(K, 1))
    puts("First");
  else
    puts("Second");
  return 0;
}
