import sys

read = sys.stdin.buffer.read

readline = sys.stdin.buffer.readline

readlines = sys.stdin.buffer.readlines



from operator import xor

from functools import reduce



N,K,*A = list(map(int,read().split()))



a = reduce(xor,(1<<a for a in A))



dp = 0 # bitset

for n in range(K):

    if not(dp&(1<<n)):

        dp |= (a<<n)



answer = 'First' if dp&(1<<K) else 'Second'

print(answer)
import sys

read = sys.stdin.buffer.read

readline = sys.stdin.buffer.readline

readlines = sys.stdin.buffer.readlines



N,K,*A = list(map(int,read().split()))



dp = [0]*(K+1) # bitset

for n in range(K):

    if not dp[n]:

        for a in A:

            if n+a>K:

                break

            dp[n+a]=1



answer = 'First' if dp[-1] else 'Second'

print(answer)
import sys

read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines
from operator import xor
from functools import reduce

N, K, *A = list(map(int, read().split()))
a = reduce(xor, (1 << a for a in A))
dp = 0  # bitset
for n in range(K):
    if not (dp & (1 << n)):
        dp |= a << n
answer = "First" if dp & (1 << K) else "Second"
print(answer)

import sys

read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines
N, K, *A = list(map(int, read().split()))
dp = [0] * (K + 1)  # bitset
for n in range(K):
    if not dp[n]:
        for a in A:
            if n + a > K:
                break
            dp[n + a] = 1
answer = "First" if dp[-1] else "Second"
print(answer)

-from operator import xor -from functools import reduce - -a = reduce(xor, (1 << a for a in A)) -dp = 0  # bitset +dp = [0] * (K + 1)  # bitset -    if not (dp & (1 << n)): -        dp |= a << n -answer = "First" if dp & (1 << K) else "Second" +    if not dp[n]: +        for a in A: +            if n + a > K: +                break +            dp[n + a] = 1 +answer = "First" if dp[-1] else "Second"