#include <bits/stdc++.h>
using namespace std;
int N, K;
int a[101];
bool dp[2][100010], vis[101][100010];
bool rec(int cur, int k) {
  if (vis[cur][k]) return dp[cur][k];
  if (k == K) {
    return cur % 2 == 1;
  }
  if (cur % 2 == 0) {
    bool sente = false;
    for (int i = 0; i < N; ++i) {
      if (k + a[i] > K) break;
      sente |= rec((cur + 1) % 2, k + a[i]);
    }
    return dp[cur][k] = sente;
  } else {
    bool sente = true;
    for (int i = 0; i < N; ++i) {
      if (k + a[i] > K) break;
      sente &= rec((cur + 1) % 2, k + a[i]);
    }
    return dp[cur][k] = sente;
  }
}
signed main() {
  cin >> N >> K;
  for (int i = 0; i < N; ++i) cin >> a[i];
  if (rec(0, 0)) {
    cout << "First" << endl;
  } else {
    cout << "Second" << endl;
  }
}
