output_description: If Taro will win, print `First`; if Jiro will win, print `Second`.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N K
      a_1 a_2 \ldots a_N
attempt: n, k = map(int, input().split())
  a = list(map(int, input().split()))
  
  dp = [[None] * (k + 1) for _ in range(2)]
  # def dfs(at=k, taro=True):
  #     if dp[taro][at]:
  #         return dp[taro][at]
  #
  #     if at == 0:
  #         r = True ^ taro # taro lose -> False
  #         dp[taro][at] = r
  #         return r
  #
  #     results = []
  #     for i in range(n):
  #         if at >= a[i]:
  #             results.append(dfs(at - a[i], not taro))
  #
  #     if not results:
  #         r = True ^ taro
  #         dp[taro][at] = r
  #         return r
  #     r = (any if taro else all)(results)
  #     dp[taro][at] = r
  #     return r
  
  for at in range(k + 1):
      for taro in range(2):
          if at == 0:
              dp[taro][at] = not taro
              continue
          results = []
          for i in range(n):
              if at >= a[i]:
                  results.append(dp[not taro][at - a[i]])
  
          if not results:
              dp[taro][at] = not taro
              continue
          dp[taro][at] = (any if taro else all)(results)
  print("First" if dp[True][k] else "Second")
  
problem_description: Statement
  
  There is a set A = \\{ a_1, a_2, \ldots, a_N \\} consisting of N positive
  integers. Taro and Jiro will play the following game against each other.
  
  Initially, we have a pile consisting of K stones. The two players perform the
  following operation alternately, starting from Taro:
  
    * Choose an element x in A, and remove exactly x stones from the pile.
  
  A player loses when he becomes unable to play. Assuming that both players play
  optimally, determine the winner.
samples: [{"input": "2 4\n    2 3", "output": "First\n    \n\nIf Taro removes three stones, Jiro cannot make a move. Thus, Taro wins.\n\n* * *"}, {"input": "2 5\n    2 3", "output": "Second\n    \n\nWhatever Taro does in his operation, Jiro wins, as follows:\n\n  * If Taro removes two stones, Jiro can remove three stones to make Taro unable to make a move.\n  * If Taro removes three stones, Jiro can remove two stones to make Taro unable to make a move.\n\n* * *"}, {"input": "2 7\n    2 3", "output": "First\n    \n\nTaro should remove two stones. Then, whatever Jiro does in his operation, Taro\nwins, as follows:\n\n  * If Jiro removes two stones, Taro can remove three stones to make Jiro unable to make a move.\n  * If Jiro removes three stones, Taro can remove two stones to make Jiro unable to make a move.\n\n* * *"}, {"input": "3 20\n    1 2 3", "output": "Second\n    \n\n* * *"}, {"input": "3 21\n    1 2 3", "output": "First\n    \n\n* * *"}, {"input": "1 100000\n    1", "output": "Second"}]