#include <bits/stdc++.h>
using namespace std;
const int inf = numeric_limits<int>::max();
const long long linf = numeric_limits<long long>::max();
const int max_n = 110, max_k = 100010, first = 0, second = 1;
int n, k, a[max_n], dp[max_k];
int main() {
  int mn = inf;
  scanf("%d", &n);
  scanf("%d", &k);
  memset(dp, second, sizeof dp);
  for (int i = 0; i < (n); ++i) {
    cin >> a[i];
    mn = min(a[i], mn);
  }
  for (int i = 0; i < (n); ++i) {
    dp[a[i]] = true;
  }
  for (int i = 0; i < (k + 1); ++i) {
    for (int j = 0; j < (n); ++j) {
      if (a[j] > i) continue;
      if (dp[i - a[j]] == second) dp[i] = first;
    }
  }
  cout << (dp[k] == first ? "First" : "Second") << endl;
  return 0;
}
