#include <bits/stdc++.h>
#include <stdio.h>
#include <math.h>
#define sz(x) ((ll)(x).size());
#define pb push_back;
#define all(x) (x).begin(),(x).end()
using namespace std;
using vi = vector<int>;
using vll = vector<long long int>;
using vb = vector<bool>;
using vvi = vector<vector<int>>;
using vvll = vector<vector<long long int>>;
using ll = long long int;

int main(){
    ll N, K; cin >> N >> K;
    vll a(N); 
    for(int i=0; i<N; i++){
        cin >> a[i];
    }
    bool dp[K+1];
    ll i = 0;
    while(i<K+1){
        if(i < a[0]){
            dp[i] = false;
        else{
            bool k = false;
            for(auto x: a){
                if(i-x >= 0){
                    if(dp[i-x] == false){
                        k = true;
                    }
                }
            }
            if(k){dp[i] = true;}
            else{dp[i] = false;}
        }
        i++;
    }
    if(dp[K]){cout << "First";}
    else{cout << "Second";}
}