import Control.Monad
import Data.Maybe
import qualified Data.ByteString.Char8 as BS
import Data.List
import qualified Data.Vector.Unboxed as VU
import qualified Data.Vector.Unboxed.Mutable as VUM

readInt = fst . fromJust . BS.readInt
readIntList = map readInt . BS.words
getInt = readInt <$> BS.getLine
getIntList = readIntList <$> BS.getLine

main = do
    [n,k] <- getIntList
    as <- getIntList
    let ans = (solve k as) VU.! k 
    putStrLn $ if ans == 1 then "First" else "Second"

solve k as = VU.create $ do
    vec <- VUM.replicate (k+1) (0 :: Int)
    forM_ [1..k] $ \i -> do
        forM_ as $ \a -> do
            when (i-a >= 0) $ do
                b <- VUM.read vec (i-a)
                when (b == 0) $ VUM.write vec i 1
    return vec