#include <bits/stdc++.h>
using namespace std;
int dx[4]{-1, +1, 0, 0};
int dy[4]{0, 0, -1, +1};
void init() {
  cin.tie(nullptr);
  ios_base::sync_with_stdio(false);
  cout << fixed << setprecision(15);
}
vector<int> a;
vector<vector<int> > dp;
int n, k;
bool rec(int p, int q) {
  if (p <= 0) return false;
  if (dp[p][q] != -1) return dp[p][q] == 1 ? true : false;
  int r = (q != 1);
  for (int i = 0; i < (int)n; i++) {
    if (!rec(p - a[i], r)) {
      dp[p][q] = 1;
      return true;
    }
  }
  dp[p][q] = 0;
  return false;
}
int main() {
  init();
  cin >> n >> k;
  a.resize(n);
  for (auto& e : a) cin >> e;
  dp = vector<vector<int> >(k + 1, vector<int>(2, -1));
  for (int i = 0; i < (int)a[0]; i++) dp[i][0] = dp[i][1] = 0;
  for (const auto& e : a) dp[e][0] = dp[e][1] = 1;
  cout << (rec(k, 0) ? "First" : "Second") << endl;
}
