/** e==m*pow(c,2) **/
#include <bits/stdc++.h>
using namespace std;
#define DEBUG 0
#define LL long long
#define int long long
//#define OFFLINE 2585
#define pii pair<int, int>
#define SQR(n) (n*n)
#define pb push_back
//#define endl '\n'
#define yes cout << "YES" << endl
#define no cout << "NO" << endl
#define INF 100000000000
#define PI (acos(0.0) * 2.0)
#define time_start clock_t tStart = clock()
#define time_end (double)(clock() - tStart)/CLOCKS_PER_SEC
#define maxn 100009
//#pragma GCC diagnostic warning "-std=c++11"
#define check(n, i) (int)(bool(!((n)&(1<<(i)))))
#define set(n, i) (((n)|(1<<(i))))
#define mod 100000007
 
#define dbg(a) cout << #a << " = " << a << endl;

 
void faster(void)
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
}
 
int lcm(int a, int b)
{
    return (a*b) / __gcd(a, b);
} 
 

int32_t main()
{
    #ifdef ONPC
      freopen("in.txt", "r", stdin);
      freopen("out.txt", "w", stdout);
    #endif
    faster();
	bool dp[100009];
	memset(dp, 0, sizeof(dp));
    int n, k, i, j, ara[105]; 
    cin >> n >> k;
    for(i=0;i<n;i++) cin>>ara[i];
    for(i=0;i<=k;i++)
    {
    	for(j=0;j<n;j++)
    	{
    		//cout<<i<<' '<<dp[i]<<' '<<j<<' '<<ara[j]<<endl;
    		//if(dp[i+ara[j]]==1) continue;
    		//else if(dp[i]==0) dp[i+ara[j]]=1;
    		dp[i+ara[j]]=max((int)dp[i]^1, (int)dp[i+ara[j]]);
    	}
    }
    if(DEBUG) for(i=0;i<=k;i++) cout<<i<<' '<<dp[i]<<endl;
    cout<<(dp[k]?"First":"Second")<<endl;
    return 0;
}

