#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
using namespace std;
#define For(i,n) for(int i=0;i<n;i++)
#define mem(a,b) memset(a,b,sizeof(a))
#define int long long int
#define ld long double
#define pb push_back
#define mp make_pair
#define mod 1000000007
#define ld long double
#define pb push_back
#define ff first
#define ss second
#define MAXN 1000000


int A[MAXN], dp[MAXN][2], N, K;

int solve(int k, int m) {

  if (dp[k][m] != -1) return dp[k][m];
  if (k == 0) return dp[k][m] = m ^ 1;

  int ans = m ^ 1;
  for (int i = 1; i <= N; i++) {
    if (A[i] > k) continue;
    if (solve(k - A[i], m ^ 1) == m) {
      ans = m;
      break;
    }
  }

  return dp[k][m] = ans;

}

int32_t main() {

  memset(dp, -1, sizeof(dp));
  cin >> N >> K;
  for (int i = 1; i <= N; i++) {
    cin >> A[i];
  }

  if (solve(K, 1)) printf("First\n");
  else printf("Second\n");

  return 0;

}