#include <bits/stdc++.h>
using namespace std;
map<long long, long long> mp1, mp;
vector<pair<long long, pair<long long, long long> > > vpp, vpp1;
vector<pair<long long, long long> > vp, fin;
vector<long long> v, v1, v2, dummy;
map<pair<long long, long long>, bool> mbb;
map<long long, bool> mb;
long long n, k, a, b, c, d, ta, sum = 0, cnt = 0, m, l, req, sz, maxi;
bool sortbysec(const pair<pair<long long, long long>, long long> &a,
               const pair<pair<long long, long long>, long long> &b) {
  return (a.second < b.second);
}
vector<pair<long long, long long> > adj[200005 + 10];
long long dp[200005 + 10];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> n >> k;
  for (long long i = 0; i < n; i++) {
    cin >> a;
    v.push_back(a);
  }
  sort(v.begin(), v.end());
  memset(dp, -1, sizeof dp);
  dp[0] = 0;
  for (long long i = 1; i <= k; i++) {
    bool flag = 0;
    long long x = 1;
    for (long long j = 0; j < n; j++) {
      long long prev = i - v[j];
      prev = max(prev, 0LL);
      x = x & dp[prev];
      if (x == 0) break;
    }
    if (x == 1)
      dp[i] = 0;
    else
      dp[i] = 1;
  }
  if (dp[k] == 1)
    cout << "First" << endl;
  else
    cout << "Second" << endl;
  return 0;
}
