#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 10;
using namespace std;
int N, K;
int w[maxn], min_w = 1e9;
int f[maxn][2];
bool dfs(int k, int p) {
  if (k < min_w) return f[k][p] = 0;
  if (f[k][p] != -1) return f[k][p];
  int nx = 1;
  for (int i = 1; i <= N; i++) nx = nx & dfs(k - w[i], p ^ 1);
  return f[k][p] = nx ^ 1;
}
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  cin >> N >> K;
  for (int i = 1; i <= N; i++) cin >> w[i], min_w = min(min_w, w[i]);
  memset(f, -1, sizeof f);
  dfs(K, 0);
  if (f[K][0] == 1)
    cout << "First\n";
  else
    cout << "Second\n";
  return 0;
}
