#include <bits/stdc++.h>
using namespace std;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
long long int dx[] = {-1, 1, -1, 0, 0, -1, 1, 1};
long long int dy[] = {-1, -1, 1, -1, 1, 0, 0, 1};
long long int gcd(long long int a, long long int b) {
  if (!b) return a;
  return gcd(b, a % b);
}
long long int modular_expo(long long int x, long long int y, long long int m) {
  long long int ans = 1;
  while (y) {
    if (y & 1) ans = (ans % m * x % m) % m;
    x = (x % m * x % m) % m;
    y /= 2;
  }
  return ans % m;
}
long long int power(long long int x, long long int y) {
  long long int ans = 1;
  while (y) {
    if (y & 1) ans = (ans * x);
    x *= x;
    y /= 2;
  }
  return ans;
}
void solve() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long int n, k;
  cin >> n >> k;
  vector<long long int> a(n);
  for (long long int i = 0; i < (n); ++i) cin >> a[i];
  bool dp[k + 1];
  for (long long int i = 0; i < (k + 1); ++i) {
    for (long long int j = 0; j < (n); ++j) {
      if (i - a[j] >= 0 && dp[i - a[j]] == 0) dp[i] = 1;
    }
  }
  if (dp[k])
    cout << "First" << '\n';
  else
    cout << "Second" << '\n';
}
int32_t main() {
  solve();
  return 0;
}
