#include <bits/stdc++.h>
#pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
using namespace std;
using ll = long long;
using lld = long double;
const int oo = 0x3f3f3f3f;
const ll MOD = 1000000007;
signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int n, k;
  cin >> n >> k;
  vector<int> a(n);
  for (int i = 0; i < n; i++) cin >> a[i];
  vector<vector<bool>> dp(2, vector<bool>(k + 2));
  int mi = *min_element(a.begin(), a.end());
  for (int i = 0; i < mi; i++) dp[1][i] = 1;
  for (int i = 0; i < n; i++) dp[0][a[i]] = 1;
  for (int i = 0; i < k + 2; i++)
    for (int j = 0; j < n; j++) {
      if (a[j] + i > k) continue;
      dp[0][i + a[j]] = dp[0][i + a[j]] | dp[1][i];
      dp[1][i + a[j]] = dp[1][i + a[j]] | dp[0][i];
    }
  if (dp[0][k])
    cout << "First\n";
  else
    cout << "Second\n";
  return 0;
}
