#include <string>
#include <iostream>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
class stoneProblemK
{
private:
	vector<bool> table;
	vector<int> moves;
	int stone_count;
	int set_size;
	void completeTable();
	void display();
public:
	stoneProblemK();

};

stoneProblemK::stoneProblemK() {
	cin >> set_size;
	cin >> stone_count;
	for (int i = 0; i < set_size; i++) {
		int move;
		cin >> move;
		moves.push_back(move);
	}
	completeTable();
	display();
	
}
void stoneProblemK::display() {
	if (table[stone_count]) {
		cout << "First";
	}
	else {
		cout << "Second";
	}
}
void stoneProblemK::completeTable() {
	for (int i = 0; i <= stone_count; i++) {
		if (i == 0) {
			table.push_back(false);
			continue;
		}
		bool can_win = false;
		for (auto x : moves) {
			if ((i - x) >= 0 && !table[i - x]) {
				can_win = true;
				break;
			}
		}
		table.push_back(can_win);
	}
}

int main(){
stoneProblemK* x = new stoneProblemK::stoneProblemK()
return 0;
}