#include <bits/stdc++.h>
using namespace std;
int n, k;
int arr[105];
int dp[100005];
int mex(vector<int> v) {
  sort(v.begin(), v.end());
  int j = 0;
  for (int i = 0; i < (int)v.size(); i++) {
    if (v[i] != j) {
      return j;
    }
    j++;
  }
  return (j + 1);
}
int grundy(int i) {
  if (i == 0) {
    return 0;
  }
  if (i < 0) {
    return -1;
  }
  if (dp[i] != -1) {
    return dp[i];
  }
  vector<int> v;
  for (int j = 0; j < n; j++) {
    if (i - arr[j] < 0) {
      break;
    }
    int x = grundy(i - arr[j]);
    v.push_back(x);
  }
  return (dp[i] = mex(v));
  v.clear();
}
int main() {
  memset(dp, -1, sizeof(dp));
  cin >> n >> k;
  for (int i = 0; i < n; i++) {
    cin >> arr[i];
  }
  sort(arr, arr + n);
  int ans = grundy(k);
  if (ans) {
    cout << "First\n";
    return 0;
  }
  cout << "Second\n";
}
