// Original C++ solution (slower):
//  Created by conan1024hao in 2019.

//  Copyright © 2019 conan1024hao. All rights reserved.

//  専用ライブラリです、自由にコピーして構いません。

//  感谢看我的代码！Wechat:conan1024hao QQ:810396815

#pragma GCC optimize ("O3")

#include <iostream>

#include <iomanip>

#include <istream>

#include <ostream>

#include <sstream>

#include <iterator>

#include <vector>

#include <algorithm>

#include <queue>

#include <deque>

#include <list>

#include <stack>

#include <map>

#include <set>

#include <utility>

#include <cmath>

#include <cstdio>

#include <cstring>

#include <string>

#include <ctime>

#include <cctype>

#include <cstdlib>

#define INF 10e16

#define MOD 1000000007

#define rep(i, a, n) for (ll i = a; i < (ll)(n); i++)

#define fi first

#define se second

#define pb push_back

#define mp make_pair

#define eb emplace_back

#define mmax(x,y)(x>y?x:y)

#define mmin(x,y)(x<y?x:y)

#define chmax(x,y) x=mmax(x,y)

#define chmin(x,y) x=mmin(x,y)

#define all(x) (x).begin(),(x).end()

#define siz(x) (ll)(x).size()

#define PI acos(-1.0)

using namespace std;

//using Int=int_fast64_t;

typedef long long int ll;

typedef pair<ll,ll>Pll;

typedef pair<int,int>Pin;

long long GCD(long long a, long long b) { return b ? GCD(b, a%b) : a; }

long long LCM(long long a, long long b)  {return a/GCD(a,b)*b;}

int dx[8]={-1,0,1,0,1,1,-1,-1};

int dy[8]={0,-1,0,1,1,-1,1,-1};

char dir[4]={'u','l','d','r'};

ll cmp1(pair<ll,string>a,pair<ll,string> b){

        if(a.fi!=b.fi)

        return a.fi<b.fi;

        else

        return a.se<b.se;

}

//--------------------------------------------------------------------------

int MAX_N=306;

bool dp[100005][2];

 int n,k;vector<int>a(100005);

int dfs(int k,int t){

    if(dp[k][t]>0)

        return dp[k][t];

    int ans=0;

    for(int i=0;i<n;i++)

        if(k>=a[i])

            ans |= !dfs(k-a[i],!t);

    return dp[k][t]=ans;

}

//---------------------------------------------------------------------------

int main(){//問題をちゃんと見ろ!!!!!!!!!!!!!!!!!      llか??????????        memset()!!!!!!!!!!!!

    cin.tie(0);

    ios::sync_with_stdio(false);

    //-------------------------------

   cin>>n>>k;

    

    for(int i=0;i<n;i++)

        cin>>a[i];

    if(dfs(k,0)==0)

        cout<<"Second"<<endl;

    else

        cout<<"First"<<endl;

    //-------------------------------

    return 0;

}

//---------------------------------------------------------------------------


// Optimized solution to the same problem (faster):
//  Created by conan1024hao in 2019.

//  Copyright © 2019 conan1024hao. All rights reserved.

//  専用ライブラリです、自由にコピーして構いません。

//  感谢看我的代码！Wechat:conan1024hao QQ:810396815

#pragma GCC optimize ("O3")

#include <iostream>

#include <iomanip>

#include <istream>

#include <ostream>

#include <sstream>

#include <iterator>

#include <vector>

#include <algorithm>

#include <queue>

#include <deque>

#include <list>

#include <stack>

#include <map>

#include <set>

#include <utility>

#include <cmath>

#include <cstdio>

#include <cstring>

#include <string>

#include <ctime>

#include <cctype>

#include <cstdlib>

#define INF 10e16

#define MOD 1000000007

#define rep(i, a, n) for (ll i = a; i < (ll)(n); i++)

#define fi first

#define se second

#define pb push_back

#define mp make_pair

#define eb emplace_back

#define mmax(x,y)(x>y?x:y)

#define mmin(x,y)(x<y?x:y)

#define chmax(x,y) x=mmax(x,y)

#define chmin(x,y) x=mmin(x,y)

#define all(x) (x).begin(),(x).end()

#define siz(x) (ll)(x).size()

#define PI acos(-1.0)

using namespace std;

//using Int=int_fast64_t;

typedef long long int ll;

typedef pair<ll,ll>Pll;

typedef pair<int,int>Pin;

long long GCD(long long a, long long b) { return b ? GCD(b, a%b) : a; }

long long LCM(long long a, long long b)  {return a/GCD(a,b)*b;}

int dx[8]={-1,0,1,0,1,1,-1,-1};

int dy[8]={0,-1,0,1,1,-1,1,-1};

char dir[4]={'u','l','d','r'};

ll cmp1(pair<ll,string>a,pair<ll,string> b){

        if(a.fi!=b.fi)

        return a.fi<b.fi;

        else

        return a.se<b.se;

}

//--------------------------------------------------------------------------



//---------------------------------------------------------------------------

int main(){//問題をちゃんと見ろ!!!!!!!!!!!!!!!!!      llか??????????        memset()!!!!!!!!!!!!

    cin.tie(0);

    ios::sync_with_stdio(false);

    int N, K, A[101], dp[101010];

    //---------------------------------------------------------------------------------------------------

        cin >> N >> K;

        rep(i, 0, N) cin >> A[i];

     

        rep(k, 0, K + 1) {

            int lose = 0, cnt = 0;

            rep(i, 0, N) if (0 <= k - A[i]) {

                cnt++;

                if(!dp[k - A[i]]) lose++;

            }

            if (cnt == 0) dp[k] = 0;

            else if (0 < lose) dp[k] = 1;

            else dp[k] = 0;

        }

     

        if (dp[K]) printf("First\n");

        else printf("Second\n");

   

    

    //-------------------------------

    return 0;

}

//---------------------------------------------------------------------------


// Fastest known solution for this problem: