#include <bits/stdc++.h>
using namespace std;
bool dp[2][100005];
long long n, k;
long long arr[105];
long long mini;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  memset(dp, false, sizeof(dp));
  cin >> n >> k;
  mini = INT_MAX;
  for (long long i = 0; i < n; ++i) {
    cin >> arr[i];
    mini = min(mini, arr[i]);
  }
  long long i = k;
  for (; i >= k - mini; --i) {
    if (i == k - mini) {
      dp[0][k - mini] = true;
      dp[1][k - mini] = true;
    } else {
      dp[0][i] = false;
      dp[1][i] = false;
    }
  }
  for (; i >= 0; --i) {
    bool cans = true;
    bool cans1 = true;
    for (long long j = 0; j < n; ++j) {
      long long next = i + arr[j];
      if (next <= k) {
        cans = cans & dp[1][next];
        cans1 = cans1 & dp[0][next];
      }
    }
    dp[0][i] = !cans;
    dp[1][i] = !cans1;
  }
  if (dp[0][0] == false) {
    cout << "Second" << endl;
  } else {
    cout << "First" << endl;
  }
}
