#include <bits/stdc++.h>
using namespace std;
long long int N;
vector<long long int> V;
long long int dp[100005][5];
long long int fun(long long int K, long long int x) {
  int y, i, flag;
  if (x == 0)
    y = 1;
  else
    y = 0;
  if (K == 0) {
    dp[K][x] = y;
    return y;
  }
  flag = 0;
  vector<long long int> ans;
  for (i = 0; i < N; i++) {
    if (V[i] <= K) {
      flag = 1;
      if (dp[(K - V[i])][y] == -1) dp[(K - V[i])][y] = fun((K - V[i]), y);
      ans.push_back(dp[(K - V[i])][y]);
    } else
      break;
  }
  if (flag == 0)
    dp[K][x] = y;
  else {
    int p = 0;
    for (i = 0; i < ans.size(); i++) {
      if (ans[i] == x) {
        p = 1;
        break;
      }
    }
    if (p == 1)
      dp[K][x] = x;
    else
      dp[K][x] = y;
  }
  return dp[K][x];
}
int main() {
  long long int K, i, x, j;
  cin >> N >> K;
  for (i = 0; i < N; i++) {
    cin >> x;
    V.push_back(x);
  }
  for (i = 0; i < 100005; i++) {
    for (j = 0; j < 5; j++) dp[i][j] = -1;
  }
  dp[K][0] = fun(K, 0);
  if (dp[K][0] == 0)
    cout << "First";
  else if (dp[K][0] == 1)
    cout << "second";
  return 0;
}
