#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>

#pragma comment(linker, "/stack:20000000")
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx")
  
#define mp make_pair

#define ll long long
#define pb push_back
  
using namespace std;
/*
using namespace __gnu_pbds;
template <typename T> using ordered_set = tree<T, null_type, std::less<T>, rb_tree_tag, tree_order_statistics_node_update>;
  */
const int inf = 2e9+7, mod=1e9+7;
const int N = 2e6;

int ans=0;

int used[N];
 
int xx[8]={1, 1, -1, -1, 2, 2, -2, -2};
int yy[8]={2, -2, 2, -2, 1, -1, 1, -1};

int a[N], d[N];


int main(){
    ios_base::sync_with_stdio(0);
    cout.tie(0);
    cin.tie(0);
    int n, k;
    cin >> n >> k;
    for(int i=0; i<n; i++){
    	cin >> a[i];	
    }
   	for(int j=0; j<n; j++){
		for(int i=0; i<=k; i++){
			if(i-a[j]>=0 && d[i-a[j]]==0)
				d[i]=1;		
		}
    }
    if(d[k])
    	cout << "First";
    else
    	cout << "Second";
	
	return 0;
}

