#include <bits/stdc++.h>
using namespace std;
const long long int N = ((long long int)1e5) + 5;
const long long int M = ((long long int)1e2) + 5;
const long long int llinf = (long long int)1e18;
const int inf = INT_MAX;
long long int n, k;
long long int arr[M];
long long int dp[N][M];
long long int f(long long int stones, long long int taken) {
  if (dp[stones][taken] != -1) return dp[stones][taken];
  if (stones <= 0) return 0;
  long long int t = INT_MAX;
  for (int i = 1; i <= n; i++) t = min(t, f(stones - arr[i], 1 - taken) + 1);
  return dp[stones][taken] = t;
}
int main() {
  cin.tie(0);
  cout.tie(0);
  ios_base::sync_with_stdio(false);
  cin >> n >> k;
  memset(dp, -1, sizeof dp);
  for (int i = 1; i <= n; i++) cin >> arr[i];
  long long int t = f(k, 0);
  if (t % 2 == 1) return cout << "First\n", 0;
  cout << "Second\n";
}
