#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;



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

    vector <int> dp(K+1, 0);
    dp[K] = 2;
    int cnt = 0;
    for(int i = K; i >= 0; --i)
    {
        for(int j = 0; j < N; ++j)
        {
            if(i - a[j] < 0)break;
            if(dp[i] == 0)continue;
            //visited
            if(dp[i-a[j]] != 0)continue;

            if(dp[i] == 2)
            {
                dp[i-a[j]] = 1;
            } 
            else
            {
                dp[i-a[j]] = 2;
            }
        }
    }

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

    string res = win[2];
    for(int i = 0; i < a[0]; ++i)
    {
        if(dp[i] != 0)
        {
            res = win[dp[i]];
            break;
        }
    }

#if DEBUG
    for(int i = 0; i <= K; ++i)
    {
        cout <<  win[dp[i]] << endl;
    }
# endif



    cout << res << endl;

    return 0;
}
