//by Top1
#include <bits/stdc++.h>
     
#define f first
#define s second
#define int long long
#define ld long double
#define ull unsigned long long
#define pii pair <int, int>
#define pll pair <long, long>
#define mp make_pair
#define pb push_back
#define pf push_front
#define pp pop_back
#define rev reverse
#define all(s) s.begin(), s.end()
#define sz(s) (int)s.size()
#define forn(i, a, b) for (int i = a; i <= b; i++)
#define boost ios_base::sync_with_stdio(false); cin.tie(0),cout.tie(0);
#define nxtp next_permutation
#define pvtp prev_permutation
#define KZ return 
#define x1 x21212121
#define y1 y21212121
#define sqr(x) x * x 
 
const int inf = (1e9) + 1;
const int mod = 1e9 + 7;
const int maxn = 2e5 + 111;
     
using namespace std;

int n, q, a[maxn], dp[maxn], k, mn = inf;
                           
void solve(){
	cin >> n >> k;

    for (int i = 1; i <= n; i++){
    	cin >> a[i];
    	mn = min(mn, a[i]);
    }

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

   	for (int i = 1; i <= k; i++){
   		for (int j = 1; j <= n; j++){
   			if (i - a[j] >= 0){
   		    	if (dp[i - a[j]] == -1)
   		    		dp[i] = 1;
   		    	else{
   		    		dp[i] = -1;
   		    		break;
   		    	}
   		    }
   			else
   				break;
   		}
   	}

   	if (dp[k] == 1)
   		cout << "First";
   	else
   		cout << "Second";
}

main(){
    boost;
	    
	q = 1;

	while (q--){
		solve();
	}
}