#include<bits/stdc++.h>
#define fastio ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
#define lli long long int
#define ulli unsigned long long int
#define ff first
#define ss second
#define mp make_pair
#define pb push_back
#define pf pop_front()
#define lb lower_bound
#define ub upper_bound
#define bs binary_search
#define loopl(i,a,b) for(lli i=a;i<b;i++) 
#define loop(i,a,b) for(int i=a;i<b;i++)
#define mod 1000000007
#define inf 100000000000000000
#define lld long double
#define pll pair<long long int,long long int>
#define vll vector<lli>
#define eps 0.000001
#define endl '\n'
#define mo 998244353
 
using namespace std ;
 
#define MAXN 305 

typedef tree<lli,null_type,less<lli>,rb_tree_tag,
tree_order_statistics_node_update> indexed_set;

bool dp[100000 + 5];


int main()
{

    lli n,k;
    cin>>n>>k;

    memset(dp,-1,sizeof(dp));

    lli a[n];
    loopl(i,0,n) 
    cin>>a[i];

    sort(a,a+n);

    dp[a[0]] = 1;

    for(lli j=a[0]+1 ; j<=k ; j++)
    {
        lli f=0;
        for(lli i=0 ; i<n && a[i]<=j ; i++)
        {
            if(dp[j-a[i]] == 0)
            {
                f=1;
                break;
            }
        }

        dp[j] = f;
    }

    if(dp[k]) cout<<"First"<<endl;
    else cout<<"Second"<<endl;


}