#include <bits/stdc++.h>
using namespace std;
map<long long int, long long int> mp;
long long int a[100005];
long long int mex(set<long long int> st) {
  long long int res = 0;
  while (st.find(res) != st.end()) res++;
  return res;
}
long long int grundy(long long int m, long long int n, long long int mini) {
  if (m < mini) return mp[m] = 0;
  if (mp.count(m)) return mp[m];
  set<long long int> s;
  for (long long int i = 0; i < n; i++) {
    s.insert(grundy(m - a[i], n, mini));
  }
  return mp[m] = mex(s);
}
int32_t main() {
  ios ::sync_with_stdio(false);
  cin.tie(0);
  long long int t = 1;
  for (long long int i9 = 1; i9 <= t; i9++) {
    long long int n, k;
    cin >> n >> k;
    for (long long int i = 0; i < n; i++) {
      cin >> a[i];
    }
    long long int mini = *min_element(a, a + n);
    long long int ans = grundy(k, n, mini);
    if (ans)
      cout << "First" << endl;
    else
      cout << "Second" << endl;
  }
}
