#include <bits/stdc++.h>
using namespace std;
const long double EPS = 1e-18;
const double DEPS = 1e-9;
const long double PI = 3.141592653589793238;
const unsigned long long MOD = 1e9 + 7;
const int N = (int)(5e5) + 1;
void inp() {}
void out() {}
long long gcd(long long fx, long long fy) {
  if (!fy) return fx;
  return gcd(fy, fx % fy);
}
inline void fill(int* ar, int sz, int val) {
  for (int i = 0; i < sz; i++) {
    ar[i] = val;
  }
}
int n, k, a[101], dp[N];
int main() {
  inp();
  memset(dp, -1, sizeof(dp));
  cin >> n >> k;
  for (int i = 0; i < n; i++) {
    scanf("%d", a + i);
  }
  for (int i = 0; i <= k; i++) {
    dp[i] = 0;
    for (int j = 0; j < n; j++) {
      if (i - a[j] == 0) {
        dp[i] |= 1;
      } else if (i - a[j] > 0) {
        dp[i] |= dp[i - a[j]] ^ 1;
      } else {
        dp[i] |= 0;
      }
    }
  }
  puts((dp[k] ? "First" : "Second"));
}
