#include <bits/stdc++.h>
using namespace std;
inline int toInt(string s) {
  int v;
  istringstream sin(s);
  sin >> v;
  return v;
}
template <class T>
inline string toString(T x) {
  ostringstream sout;
  sout << x;
  return sout.str();
}
const double EPS = 1e-9;
const double PI = acos(-1.0);
const int INT_INF = 2147483647;
const long long LL_INF = 1LL << 60;
const long long MOD = 1000000007;
template <class T>
inline bool chmax(T& a, T b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}
template <class T>
inline bool chmin(T& a, T b) {
  if (a > b) {
    a = b;
    return true;
  }
  return false;
}
int N, K;
vector<int> a, dp;
int rec(int n) {
  if (dp[n] != -1) return dp[n];
  if (n == 0) return dp[n] = 0;
  if (n < 0) return 1;
  int res = 0;
  for (int i = (0); i < (N); ++i) {
    if (rec(n - a[i]) == 0) res = 1;
  }
  return dp[n] = res;
}
int main(void) {
  cin >> N >> K;
  a.assign(N, 0);
  for (int i = (0); i < (N); ++i) cin >> a[i];
  dp.assign(K + 1, 0);
  for (int i = (0); i < (K + 1); ++i) dp[i] = -1;
  string ans;
  if (rec(K) == 1)
    ans = "First";
  else
    ans = "Second";
  cout << ans << "\n";
  return 0;
}
