#include <bits/stdc++.h>
using namespace std;
const long long oo = 1e8;
const double pi = 3.1415926535897;
const double EPS = (1e-7);
int dcmp(double x, double y) { return fabs(x - y) <= EPS ? 0 : x < y ? -1 : 1; }
struct edge {
  int from, to, w;
  edge() {}
  edge(int x, int y, int we) : from(x), to(y), w(we) {}
  bool operator<(const edge &rhs) const { return w > rhs.w; }
};
const int N = 100 + 5, K = 1e5 + 5;
int dp[K];
int a[N];
int n, ans = 0;
int sol(int k, int turn) {
  int f = 1;
  int &ret = dp[k];
  if (ret != -1) return ret;
  ret = !turn;
  for (int i = 0; i < n; i++) {
    if (k - a[i] >= 0) {
      int ch = sol(k - a[i], turn ^ 1);
      if (turn)
        ret = max(ret, ch);
      else
        ret = min(ret, ch);
      f = 0;
    } else
      break;
  }
  if (f) {
    if (turn == 0) return 1;
    return 0;
  }
  return ret;
}
int main() {
  memset(dp, -1, sizeof(dp));
  int k;
  cin >> n >> k;
  for (int i = 0; i < n; i++) cin >> a[i];
  cout << (sol(k, 1) == 1 ? "First" : "Second") << "\n";
}
