#include <bits/stdc++.h>
#pragma GCC optimize("O2")
using namespace std;
inline long long input() {
  long long n;
  cin >> n;
  return n;
}
long long poww(long long a, long long b, long long md) {
  return (!b ? 1
             : (b & 1 ? a * poww(a * a % md, b / 2, md) % md
                      : poww(a * a % md, b / 2, md) % md));
}
const int MAXN = 1e5 + 10;
const int MOD = 1e9 + 7;
const int MOD2 = 998244353;
const long long INF = 8e18;
long long n, k;
long long arr[110];
long long mn;
long long tmp;
long long dp[MAXN];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  ;
  mn = INF;
  cin >> n >> k;
  for (int i = 1; i <= n; i++) {
    cin >> arr[i];
    mn = min(mn, arr[i]);
  }
  for (int i = 0; i <= k; i++) {
    dp[k] = 2;
  }
  for (int i = 0; i < mn; i++) {
    dp[i] = 1;
  }
  for (int i = 0; i < k; i++) {
    tmp = dp[i];
    if (tmp == 2) {
      continue;
    }
    for (int j = 1; j <= n; j++) {
      long long cnt = min((long long)MAXN - 1, (long long)i + arr[j]);
      if (dp[cnt] == 2) {
        dp[cnt] = 1 - tmp;
      }
      if (dp[cnt] == 1 and tmp == 1) {
        dp[cnt] = 0;
      }
    }
  }
  if (dp[k] == 0) {
    cout << "First";
  } else {
    cout << "Second";
  }
}
