import std.array;
import std.conv;
import std.string;
import std.algorithm;
import std.stdio;

void readPair(T, U)(out T a, out U b) {
	readf("%s %s\n", &a, &b);
}

Num[] readArray(Num)() {
	return readln.chomp.split(' ').map!(to!Num).array;
}

void main() {
	int n, k;
	readPair(n, k);
	auto a = readArray!int;
	a.sort();

	auto dp = new int[](k + 1);
	dp[] = -1;
	foreach (i;0..a[0]) {
		dp[i] = 1; // ターンプレイヤーの敗北
	}
	dp[a[0]] = 0; // ターンプレイヤーの勝利

	while (dp[k] == -1) {
		foreach (e;a) {
			foreach (i;0..k + 1 - e) {
				if (dp[i] == 1) {
					dp[i + e] = 0;
				}
			}
		}

		foreach (i;a[0]..k + 1) {
			if (dp[i] != -1) {
				continue;
			}

			bool allLose = true;
			foreach (e;a) {
				if (i >= e && dp[i - e] == 1) {
					allLose = false;
					break;
				}
			}
			if (allLose) {
				dp[i] = 1;
			}
		}
	}

	if (dp[k] == 0) {
		writeln("First");
	} else {
		writeln("Second");
	}
}
