import qualified Data.ByteString.Char8 as B
import qualified Data.Vector.Unboxed as VU
import Control.Monad
import Data.Char
import Data.List

solve :: VU.Vector Int -> Int -> VU.Vector Bool
solve as k = VU.foldl' step (VU.singleton False) $ VU.generate (k+1) $ \i -> (id i +1)
    where
        step :: VU.Vector Bool -> Int -> VU.Vector Bool
        step v n = 
            let
                new = VU.foldl' (\b a -> if (n - a >= 0) then (not $ v VU.! (n-a)) || b else b) False as
            in
                VU.snoc v new

main = do
    [n,k] <- map read . words <$> getLine :: IO [Int]
    as <- VU.unfoldrN n (B.readInt . B.dropWhile isSpace) <$> B.getLine
    putStrLn $ if (solve as k) VU.! k then "First" else "Second"