#include <bits/stdc++.h>
using namespace std;
const long long int N = ((long long int)1e5) + 5;
const long long int M = ((long long int)1e2) + 5;
const long long int llinf = (long long int)1e18;
const int inf = INT_MAX;
int n, k;
int arr[M];
int mn = INT_MAX;
int dp[N][2];
bool f(int stones, bool h) {
  if (stones == mn) return h;
  if (stones < mn) return !h;
  if (dp[stones][h] != -1) return dp[stones][(int)h];
  for (int i = 1; i <= n; i++) {
    if (f(stones - arr[i], !h) == h) return (bool)(dp[stones][(int)h] = (int)h);
  }
  return (bool)(dp[stones][(int)h] = (int)!h);
}
int main() {
  cin.tie(0);
  cout.tie(0);
  ios_base::sync_with_stdio(false);
  cin >> n >> k;
  memset(dp, -1, sizeof dp);
  for (int i = 1; i <= n; i++) cin >> arr[i], mn = min(arr[i], mn);
  bool t = f(k, true);
  if (t) return cout << "First\n", 0;
  cout << "Second\n";
}
