#include <bits/stdc++.h>
using namespace std;
int n, k, ar[105], dp[100005][2], mn;
int fun(int rem, int x) {
  ;
  ;
  int i;
  if (dp[rem][x] != -1) return dp[rem][x];
  if (rem < mn)
    if (x == 1)
      return dp[rem][x] = 0;
    else
      return dp[rem][x] = 1;
  if (x == 1) {
    dp[rem][x] = 0;
    for (i = 0; i < n; i++) dp[rem][x] = max(dp[rem][x], fun(rem - ar[i], 0));
  } else {
    dp[rem][x] = 1;
    for (i = 0; i < n; i++) dp[rem][x] = min(dp[rem][x], fun(rem - ar[i], 1));
  }
  return dp[rem][x];
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  cout.tie(NULL);
  int i;
  cin >> n >> k;
  for (i = 0; i < n; i++) cin >> ar[i];
  memset(dp, -1, sizeof(dp));
  mn = *min_element(ar, ar + n);
  (fun(k, 1)) ? cout << "First" : cout << "Second";
}
