#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using vi = vector<int>;
using vll = vector<ll>;
const ll MOD = 1000000007ll;
const ll INF = 0x3f3f3f3f3f3f3f3f;
inline ll SUB(ll a, ll b) { return a - b >= 0ll ? a - b : a - b + MOD; }
inline ll ADD(ll a, ll b) { return a + b >= MOD ? a + b - MOD : a + b; }
inline ll MUL(ll a, ll b) { return a * b % MOD; }
constexpr int MAX = 100000;
int dp[MAX + 3];
int a[101];
int n, K, minA = MAX + 3;
int f(int k) {
  if (k < minA) return 0;
  if (dp[k] != -1) return dp[k];
  for (int i = (0), _for = ((n)); i < _for; i++) {
    if (f(k - a[i]) == 0) {
      dp[k] = 1;
      return dp[k];
    }
  }
  dp[k] = 0;
  return dp[k];
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  memset(dp, -1, sizeof(int) * MAX);
  cin >> n >> K;
  for (int i = (0), _for = ((n)); i < _for; i++) {
    cin >> a[i];
    if (a[i] < minA) minA = a[i];
  }
  if (f(K))
    cout << "First" << endl;
  else
    cout << "Second" << endl;
}
