#include <vector>
#include <iostream>
#include <set>
int main()
{
    int N, K;
    std::cin >> N >> K;
    std::vector<int> a(N);
    for (int i = 0; i < N; i++) { std::cin >> a[i]; }
    std::vector<int> grundy(K + 1, 0);
    std::set<int> st;
    for (int i = 0; i <= 2 * K; i++) { st.insert(i); }
    for (int i = 0; i <= K; i++) {
        std::set next = st;
        for (int j = 0; j < N; j++) {
            if (i >= a[j]) { next.erase(grundy[i - a[j]]); }
        }
        grundy[i] = *next.begin();
    }
    std::cout << (grundy[K] == 0 ? "Second" : "First") << std::endl;

    return 0;
}
