#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
using namespace std;
#define f first
#define s second
#define fastio ios_base::sync_with_stdio(false); cin.tie(0)
#define loop(i, a, b) for(lli i=a; i<b; i++)
#define loopb(i, a, b) for(lli i=a; i>=b; i--)
#define pb push_back
typedef long long int lli;
typedef pair<lli, lli> pii;
typedef vector<lli> vll;
// use to avoid collision
struct custom_hash {
    static uint64_t splitmix64(uint64_t x) {
        // http://xorshift.di.unimi.it/splitmix64.c
        x += 0x9e3779b97f4a7c15;
        x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;
        x = (x ^ (x >> 27)) * 0x94d049bb133111eb;
        return x ^ (x >> 31);
    }

    size_t operator()(uint64_t x) const {
        static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count();
        return splitmix64(x + FIXED_RANDOM);
    }
};
// for pair in unordered_map
struct hash_pair {
    template <class T1, class T2>
    size_t operator()(const pair<T1, T2>& p) const
    {
        auto hash1 = hash<T1>{}(p.first);
        auto hash2 = hash<T2>{}(p.second);
        return hash1 ^ hash2;
    }
};
lli power(lli x, lli y, lli p){
    lli res = 1;
    x = x % p;
    while (y > 0) {
        if (y & 1)
            res = (res*x) % p;
        y = y>>1;
        x = (x*x) % p;
    }
    return res;
}
vll grundy;
vector<bool> vis;
void calc_grundy(lli a, vll& piles){
	lli n = piles.size();
	vis.clear();
	vis.resize(a+1, false);
	loop(i, 0, n){
		if(a >= piles[i])
			vis[grundy[a-piles[i]]] = true;
		else
			break;
	}
	lli mex = 0;
	loop(i, 0, a+1){
		if(vis[i] == false){
			break;
		}
		else
			mex++;
	}
	grundy[a] = mex;
	return ;
}
lli solve(){
	lli n, k;
	cin>>n>>k;
	vll piles(n);
	grundy.clear();
	loop(i, 0, n)	cin>>piles[i];
	grundy.resize(k+1, -1);
	grundy[0] = 0;
	loop(i, 1, k+1)
		calc_grundy(i, piles);
//	loop(i, 0, k+1)
//		cout<<grundy[i]<<"\n";
	lli xr = grundy[k - piles[0]];
	loop(i, 1, n)	xr = xr ^ grundy[k - piles[i]];
	if(xr == 0)
		cout<<"Second\n";
	else
		cout<<"First\n";
	return 0;
}
int main(){
	fastio;
	lli t;
//	cin>>t;
	t = 1;
	while(t>0){
		t--;
		solve();
	}
}
