#include <iostream>
#include <fstream>
#include <algorithm>       // for next_permutation
#include <vector>
#include <bits/stl_numeric.h>

#define DEBUG 0
#define REP(i, n) for (long long i = 0; i < (n); i++) 
typedef long long ll;
static const ll MOD = 1000000007;
static const ll INF = 1000000000000000000LL;
using namespace std;

//Stone
//dp[i]:石がi個のとき、先手が勝てるかどうか

int main() {
    int N,K;
    cin >> N >> K;
    vector <int> a(N);
    REP(i,N)
    {
        cin >> a[i];
    }
    //sort(a.begin(),a,end());


    vector <bool> dp(K+1, false);
    
    //のこり0のときは先手の負け
    dp[0] = false;
    int cnt = 0;
    for(int i = 1; i <= K; ++i)
    {
        for(int j = 0; j < N; ++j)
        {
            if(i >= a[j])
            {
                //or = 
                dp[i] |= !dp[i-a[j]];
            }
        }
    }

    string win[2] = {"Second", "First"};

    string res = win[dp[K]];

    cout << res << endl;

    return 0;
}
