import Data.Array  --変数衝突
import Data.Array.Unboxed
import Data.Array.MArray
import Data.Array.ST
import Control.Monad
import Control.Monad.State
import Control.Monad.ST
import Debug.Trace

type DP s = STUArray s Int Bool

dp_i :: DP s -> [Int] -> Int -> ST s ()
dp_i dparr as k = do
  nexts <- forM as $ \a -> if k-a >= 0 then readArray dparr (k-a) else return True
  writeArray dparr k $ any (==False) nexts

solve :: [Int] -> Int -> Int -> ST s Bool
solve as n k = do
  dparr <- newArray (0,k) False
  let mina = head as --asは既にソート済み
  forM_ [mina..k] $ dp_i dparr as
  readArray dparr k

main :: IO ()
main = do
  [n,k] <- map read.words <$> getLine
  as <- map read.words <$> getLine
  case runST $ solve as n k of
    True  -> putStrLn "First"
    False -> putStrLn "Second"
