#include <bits/stdc++.h>
using namespace std;
long long mod = 1e9 + 7;
long long a[200005];
long long b[200005];
long long idx[100005][2];
long long pre[200005];
map<long long, long long> m;
bool comp(const pair<long long, long long>& a,
          const pair<long long, long long>& b) {
  return (a.first - a.second) > (b.first - b.second);
}
bool revcomp(const pair<long long, long long>& a,
             const pair<long long, long long>& b) {
  return (a.first) > (b.first);
}
long long ceil1(long long a, long long b) {
  if (a % b != 0)
    return a / b + 1;
  else
    return a / b;
}
long long power(long long a, long long b, long long n) {
  long long ans = 1;
  while (b > 0) {
    if (b % 2 == 1) ans = (ans * a) % n;
    a = (a * a) % n;
    b /= 2;
  }
  return ans;
}
long long count1 = 0;
long long gcd(long long a, long long b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
long long primepos(long long fact, long long p) {
  long long res = 0;
  while (fact > 0) {
    res += fact / p;
    fact /= p;
  }
  return res;
}
int main() {
  ios::sync_with_stdio(0);
  int n, k;
  cin >> n >> k;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  int b[k + 1];
  memset(b, 0, sizeof b);
  for (int i = 0; i < n; i++) {
    for (int j = 0; j <= k; j++) {
      if (j >= a[i] && b[j - a[i]] == 0) {
        b[j] = 1;
      }
    }
  }
  if (b[k] == 1)
    cout << "First" << endl;
  else
    cout << "Second" << endl;
  return 0;
}
