#include <bits/stdc++.h>
using namespace std;
long long a[10000], n;
long long dp[1000002][2];
long long fun(long long k, long long x) {
  if (dp[k][x] != -1) return dp[k][x];
  long long flag = 0;
  for (long long i = 0; i < n; i++) {
    if (k >= a[i]) {
      flag = 1;
      break;
    }
  }
  if (flag == 0)
    return dp[k][x] = x ^ 1;
  else {
    for (long long i = 0; i < n; i++) {
      if (k >= a[i]) dp[k - a[i]][x] = fun(k - a[i], x);
      if (dp[k - a[i]][x] == x ^ 1) return dp[k][x] = x;
    }
    return dp[k][x] = x ^ 1;
  }
}
int main() {
  long long k;
  cin >> n >> k;
  for (long long i = 0; i < 1000002; i++) {
    for (long long j = 0; j < 2; j++) dp[i][j] = -1;
  }
  for (long long i = 0; i < n; i++) cin >> a[i];
  if (fun(k, 1ll))
    cout << "First\n";
  else
    cout << "Second\n";
  return 0;
}
