def solve(ls, k):

	dp = [False for i in range(k + 1)]

	for i in range(k + 1):

		for stone in ls:

			if stone <= i and not dp[i - stone]:

				dp[i] = True

	return dp[k]





n, k = list(map(int, input().split()))

ls = list(map(int, input().split()))

if solve(ls, k):

	print('First')

else:

	print('Second')

n, k = list(map(int, input().split()))

ls = list(map(int, input().split()))

dp = [False] * (k + 1)

for i in range(1, k + 1):

	for j in ls:

		if i - j >= 0 and not dp[i - j]:

			dp[i] = True

if dp[k]:

	print('First')

else:

	print('Second')

def solve(ls, k):
    dp = [False for i in range(k + 1)]
    for i in range(k + 1):
        for stone in ls:
            if stone <= i and not dp[i - stone]:
                dp[i] = True
    return dp[k]


n, k = list(map(int, input().split()))
ls = list(map(int, input().split()))
if solve(ls, k):
    print("First")
else:
    print("Second")

n, k = list(map(int, input().split()))
ls = list(map(int, input().split()))
dp = [False] * (k + 1)
for i in range(1, k + 1):
    for j in ls:
        if i - j >= 0 and not dp[i - j]:
            dp[i] = True
if dp[k]:
    print("First")
else:
    print("Second")

-def solve(ls, k): -    dp = [False for i in range(k + 1)] -    for i in range(k + 1): -        for stone in ls: -            if stone <= i and not dp[i - stone]: -                dp[i] = True -    return dp[k] - - -if solve(ls, k): +dp = [False] * (k + 1) +for i in range(1, k + 1): +    for j in ls: +        if i - j >= 0 and not dp[i - j]: +            dp[i] = True +if dp[k]: