#include <bits/stdc++.h>
using namespace std;
int const N = 100005;
long long min(long long x, long long y) {
  if (x < y)
    return x;
  else
    return y;
}
long long max(long long x, long long y) {
  if (x > y)
    return x;
  else
    return y;
}
long long dp[N], a[N], n, k;
long long sol(long long stone) {
  if (!stone) return 0;
  if (dp[stone] != -1) return dp[stone];
  for (int i = 0; i < n; i++) {
    if (stone < a[i]) break;
    dp[stone] |= (dp[stone - a[i]] == 0);
  }
  return dp[stone];
}
int main() {
  long long i, j;
  cin >> n >> k;
  memset(dp, -1, sizeof(dp));
  for (i = 0; i < n; i++) cin >> a[i];
  if (sol(k))
    cout << "First" << endl;
  else
    cout << "Second" << endl;
}
