#include <bits/stdc++.h>
using namespace std;
long long int mod(string n, long long int k) {
  long long int res = 0;
  for (long long int i = 0; i < n.length(); i++)
    res = (res * 10 + (int)n[i] - '0') % k;
  return res;
}
string longDivision(string number, long long int divisor) {
  string ans;
  long long int idx = 0;
  long long int temp = number[idx] - '0';
  while (temp < divisor) temp = temp * 10 + (number[++idx] - '0');
  while (number.size() > idx) {
    ans += (temp / divisor) + '0';
    temp = (temp % divisor) * 10 + number[++idx] - '0';
  }
  if (ans.length() == 0) return "0";
  return ans;
}
int n, k, Min = 1e9;
vector<int> a;
vector<int> dp(1e5 + 2, -1);
bool f(int sum) {
  if (dp[sum] != -1) return (bool)dp[sum];
  if (sum < Min) return false;
  for (int i = 0; i < n; i++) {
    if (f(sum - a[i]) == false) {
      dp[sum] = 1;
      return true;
    }
  }
  dp[sum] = 0;
  return false;
}
int main() {
  cin >> n >> k;
  for (int i = 0; i < n; i++) {
    int x;
    cin >> x;
    a.push_back(x);
    Min = min(Min, x);
  }
  if (f(k))
    cout << "First\n";
  else
    cout << "Second\n";
  return 0;
}
