#include <bits/stdc++.h>
using namespace std;
int n, k;
int mini = INT_MAX;
map<int, int> mp;
vector<int> v;
int dp[100005][2];
int solve(int i, int turn) {
  if (i <= 0) return turn ^ 1;
  if (dp[i][turn] != -1) return dp[i][turn];
  if (i < mini) return dp[i][turn] = turn ^ 1;
  if (mp[i] == 1) return dp[i][turn] = turn;
  for (int j = 0; j < k; j++) {
    int x = solve(i - v[j], turn ^ 1);
    if (x == turn) return dp[i][turn] = turn;
  }
  return dp[i][turn] = turn ^ 1;
}
int main() {
  cin >> k >> n;
  for (int i = 0; i < k; i++) {
    int x;
    cin >> x;
    v.push_back(x);
    mini = min(mini, x);
    mp[x] = 1;
  }
  memset(dp, -1, sizeof dp);
  cout << ((solve(n, 0) == 0) ? "First" : "Second");
}
