#include <bits/stdc++.h>
using namespace std;
bool isLow(char ch) {
  if (ch >= 'a' && ch <= 'z') return true;
  return false;
}
bool isUpp(char ch) {
  if (ch >= 'A' && ch <= 'Z') return true;
  return false;
}
bool isDig(char ch) {
  if (ch >= '0' && ch <= '9') return true;
  return false;
}
int n, k;
int ara[101];
pair<long long, long long> dp[100001][2];
pair<long long, long long> operator+(pair<long long, long long> a,
                                     pair<long long, long long> b) {
  pair<long long, long long> c;
  c.first = a.first + b.first;
  c.second = a.second + b.second;
  return c;
}
pair<long long, long long> call(int v, int p) {
  if (v == 0 && p == 0) return {0, 1};
  if (v == 0 && p == 1) return {1, 0};
  if (dp[v][p].first != -1) return dp[v][p];
  pair<long long, long long> ans = {0, 0};
  for (int i = 0; i < n; i++)
    if (v >= ara[i])
      ans = ans + call(v - ara[i], 1 - p);
    else
      break;
  return dp[v][p] = ans;
}
int main() {
  for (int i = 0; i < 100001; i++)
    for (int j = 0; j < 2; j++) dp[i][j] = {-1, -1};
  scanf("%d %d", &n, &k);
  for (int i = 0; i < n; i++) scanf("%d", &ara[i]);
  pair<long long, long long> ans = call(k, 0);
  if (ans.first >= ans.second)
    puts("First");
  else
    puts("Second");
  return 0;
}
