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

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

mini=min(a)

dp1=[-1 for i in range(k+1)]

dp2=[-1 for i in range(k+1)]

for x in range(k+1):

	if x == 0 or mini > x:

		dp1[x]=False

		dp2[x]=False

		continue

	dp1[x]=False

	dp2[x]=False

	for v in a:

		if v>x:

			continue

		dp1[x]=dp1[x] or not dp2[x-v]

		dp2[x]=dp2[x] or not dp1[x-v]



if dp1[k]:

	print("First")

else:

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

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

mini=min(a)

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



for x in range(k+1):

	if x == 0 or mini > x:

		dp[x]=False

		continue

	dp[x]=False

	for v in a:

		if v>x:

			continue

		dp[x]=dp[x] or not dp[x-v]



if dp[k]:

	print("First")

else:

	print("Second")
n, k = list(map(int, input().split()))
a = list(map(int, input().split()))
mini = min(a)
dp1 = [-1 for i in range(k + 1)]
dp2 = [-1 for i in range(k + 1)]
for x in range(k + 1):
    if x == 0 or mini > x:
        dp1[x] = False
        dp2[x] = False
        continue
    dp1[x] = False
    dp2[x] = False
    for v in a:
        if v > x:
            continue
        dp1[x] = dp1[x] or not dp2[x - v]
        dp2[x] = dp2[x] or not dp1[x - v]
if dp1[k]:
    print("First")
else:
    print("Second")

n, k = list(map(int, input().split()))
a = list(map(int, input().split()))
mini = min(a)
dp = [-1 for i in range(k + 1)]
for x in range(k + 1):
    if x == 0 or mini > x:
        dp[x] = False
        continue
    dp[x] = False
    for v in a:
        if v > x:
            continue
        dp[x] = dp[x] or not dp[x - v]
if dp[k]:
    print("First")
else:
    print("Second")

-dp1 = [-1 for i in range(k + 1)] -dp2 = [-1 for i in range(k + 1)] +dp = [-1 for i in range(k + 1)] -        dp1[x] = False -        dp2[x] = False +        dp[x] = False -    dp1[x] = False -    dp2[x] = False +    dp[x] = False -        dp1[x] = dp1[x] or not dp2[x - v] -        dp2[x] = dp2[x] or not dp1[x - v] -if dp1[k]: +        dp[x] = dp[x] or not dp[x - v] +if dp[k]: