#include<bits/stdc++.h>
using namespace std ;
#define ll          long long int
#define fast        ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);

int recursive(vector<int>&nums,int dp[],int K) {
    if(dp[K]) return dp[K] ;
    for(int i = 0;i<nums.size();i++) {
        if(K>=nums[i]) {
            if(recursive(nums,dp,K-nums[i],chance)==2){
                dp[K] = 1 ;  return dp[K] ;
            }
        }
            
    }
  
    dp[K]=2 ;
    return dp[K] ;
}

bool bottom_up(vector<int>&nums,int K) {
    bool dp[1000007] = {false} ; int chance = 0 ;
    dp[0] = 0 ;
    if(K==0) return dp[0] ;
    for(int i =1;i<=K;i++) {
        for(int j =0 ;j<nums.size();j++) {
            if(i>=nums[j]) {
                dp[i] = dp[i]|dp[i-nums[j]] ;
            }
        }
    }
    return dp[K] ;
    
}

int main() {
    fast
    int m,n;
    cin >> m >> n ;
    vector<int> arr(m)  ; 
    for(int i =0 ;i<m;i++)  cin>>arr[i] ; 
    int dp[1000007] ;
    memset(dp,0,sizeof(dp)) ;
    dp[0] =2 ;
    
    int ans =recursive(arr,dp,n) ;
    if(ans==1) cout << "First" ;
    else if(ans==2) cout << "Second" ;
    else cout << "None" ;
    
        
}
