#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
const long long INF = 100000000000010000;
long long bit[1000010];
void test() { cout << "888888888888888888888888" << endl; }
long long gcd(long long x, long long y) {
  if (y == 0) return x;
  return gcd(y, x % y);
}
long long pow_mod(long long x, long long y) {
  if (y == 0) return 1;
  if (y % 2 == 1) {
    return x * pow_mod(x, y - 1) % mod;
  } else {
    long long half = pow_mod(x, y / 2);
    return half * half % mod;
  }
}
long long div_mod(long long x) { return pow_mod(x, mod - 2); }
long long N, K;
long long a[101];
bool dp[100010][2], flg[100010][2];
bool saiki(long long sum, long long turn) {
  if (sum < a[0]) return turn == 1;
  if (flg[sum][turn]) return dp[sum][turn];
  flg[sum][turn] = true;
  if (turn == 0) {
    for (long long i = 0; i < (N); i++) {
      if (saiki(sum - a[i], 1)) return dp[sum][turn] = true;
    }
    return dp[sum][turn] = false;
  } else {
    for (long long i = 0; i < (N); i++) {
      if (!saiki(sum - a[i], 0)) {
        return dp[sum][turn] = false;
      }
    }
    return dp[sum][turn] = true;
  }
}
void solve() {
  cin >> N >> K;
  for (long long i = 0; i < (N); i++) cin >> a[i];
  if (saiki(K, 0)) {
    cout << "First" << endl;
  } else {
    cout << "Second" << endl;
  }
}
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  solve();
  long long N;
  cin >> N;
}
