#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
#include<map>
#define MEM(var,val) memset(var,(val),sizeof(var))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define nitro   ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define ll long long
#define vll vector<ll>
#define pll pair<ll,ll>
#define mp make_pair
#define pb push_back
#define F first
#define S second
#define tc ll tes;cin>>tes;while(tes--)
#define inf 10000000000
const double pi = std::acos(-1);
ll lcm(ll a,ll b){
return (a*b)/__gcd(a,b);
}
ll solve(ll a,ll b,ll c,ll d)
{
    ll t=0;
    if(b>=a)
        return b;
    else{
        t=b;
        if(d>=c)
            return -1;
        if((a-t)%(c-d)==0)
            t+=c*((a-t)/(c-d));
        else t+=c*((a-t)/(c-d))+c;
        return t;
    }
}
ll n,k;
vll v,dp;
void solve(ll i)
{
    if(i>k)
        return ;
    if(dp[i]==1)
        for(int j=0;j<n;j++)
        dp[i+v[j]]=MAX(dp[i+v[j]],0);
    if(dp[i]==0)
        for(int j=0;j<n;j++)
        dp[i+v[j]]=1;
    for(int j=0;j<n;j++)
        solve(i+v[j]);
    return;

}
int main()
{
nitro;
cin>>n>>k;
v.resize(n);
dp.resize(k+1,-1);

for(int i=0;i<n;i++)
    cin>>v[i];
    dp[0]=0;
solve(0);
if(dp[k]==1)
    cout<<"First\n";
else cout<<"Second\n";
   }


