import math,itertools,fractions,heapq,collections,bisect,sys,queue,copy



sys.setrecursionlimit(10**7)

inf=10**20

mod=10**9+7

dd=[(-1,0),(0,1),(1,0),(0,-1)]

ddn=[(-1,0),(-1,1),(0,1),(1,1),(1,0),(1,-1),(0,-1),(-1,-1)]



def LI(): return [int(x) for x in sys.stdin.readline().split()]

def LF(): return [float(x) for x in sys.stdin.readline().split()]

def I(): return int(sys.stdin.readline())

def F(): return float(sys.stdin.readline())

def LS(): return sys.stdin.readline().split()

def S(): return eval(input())



def main():

  n,k=LI()

  dp=[0]*100100

  l=LI()



  for i in range(k):

    for x in l:

      if i+x<=k:

        if dp[i+x]==0 and dp[i]==0:

          dp[i+x]=1



  # print(dp[:k+1])

  return 'First' if dp[k] else 'Second'



# main()

print((main()))

import math,itertools,fractions,heapq,collections,bisect,sys,queue,copy



sys.setrecursionlimit(10**7)

inf=10**20

mod=10**9+7

dd=[(-1,0),(0,1),(1,0),(0,-1)]

ddn=[(-1,0),(-1,1),(0,1),(1,1),(1,0),(1,-1),(0,-1),(-1,-1)]



def LI(): return [int(x) for x in sys.stdin.readline().split()]

def LF(): return [float(x) for x in sys.stdin.readline().split()]

def I(): return int(sys.stdin.readline())

def F(): return float(sys.stdin.readline())

def LS(): return sys.stdin.readline().split()

def S(): return eval(input())



def main():

  n,k=LI()

  l=LI()



  dp=[0]*100100



  for i in range(k):

    for x in l:

      y=dp[i]



      if y==0 and i+x<100100:

        dp[i+x]=1



  if dp[k]==1:

    return 'First'

  return 'Second'



# main()

print((main()))

import math, itertools, fractions, heapq, collections, bisect, sys, queue, copy

sys.setrecursionlimit(10**7)
inf = 10**20
mod = 10**9 + 7
dd = [(-1, 0), (0, 1), (1, 0), (0, -1)]
ddn = [(-1, 0), (-1, 1), (0, 1), (1, 1), (1, 0), (1, -1), (0, -1), (-1, -1)]


def LI():
    return [int(x) for x in sys.stdin.readline().split()]


def LF():
    return [float(x) for x in sys.stdin.readline().split()]


def I():
    return int(sys.stdin.readline())


def F():
    return float(sys.stdin.readline())


def LS():
    return sys.stdin.readline().split()


def S():
    return eval(input())


def main():
    n, k = LI()
    dp = [0] * 100100
    l = LI()
    for i in range(k):
        for x in l:
            if i + x <= k:
                if dp[i + x] == 0 and dp[i] == 0:
                    dp[i + x] = 1
    # print(dp[:k+1])
    return "First" if dp[k] else "Second"


# main()
print((main()))

import math, itertools, fractions, heapq, collections, bisect, sys, queue, copy

sys.setrecursionlimit(10**7)
inf = 10**20
mod = 10**9 + 7
dd = [(-1, 0), (0, 1), (1, 0), (0, -1)]
ddn = [(-1, 0), (-1, 1), (0, 1), (1, 1), (1, 0), (1, -1), (0, -1), (-1, -1)]


def LI():
    return [int(x) for x in sys.stdin.readline().split()]


def LF():
    return [float(x) for x in sys.stdin.readline().split()]


def I():
    return int(sys.stdin.readline())


def F():
    return float(sys.stdin.readline())


def LS():
    return sys.stdin.readline().split()


def S():
    return eval(input())


def main():
    n, k = LI()
    l = LI()
    dp = [0] * 100100
    for i in range(k):
        for x in l:
            y = dp[i]
            if y == 0 and i + x < 100100:
                dp[i + x] = 1
    if dp[k] == 1:
        return "First"
    return "Second"


# main()
print((main()))

+    l = LI() -    l = LI() -            if i + x <= k: -                if dp[i + x] == 0 and dp[i] == 0: -                    dp[i + x] = 1 -    # print(dp[:k+1]) -    return "First" if dp[k] else "Second" +            y = dp[i] +            if y == 0 and i + x < 100100: +                dp[i + x] = 1 +    if dp[k] == 1: +        return "First" +    return "Second"