import std.stdio, std.array, std.string, std.conv, std.algorithm;
import std.typecons, std.range, std.random, std.math, std.container;
import std.numeric, std.bigint, core.bitop, std.bitmanip;

void main() {
    auto s = readln.split.map!(to!int);
    auto N = s[0];
    auto K = s[1];
    auto A = readln.split.map!(to!int).array;

    auto grundy = new int[](K+1);
    grundy[0] = 0;

    foreach (i; 1..K+1) {
        int[] mex;
        foreach (a; A) {
            if (i - a >= 0) {
                mex ~= grundy[i-a];
            }
        }
        mex = mex.sort().uniq().array;
        grundy[i] = mex.length.to!int;
        foreach (j; 0..mex.length.to!int) {
            if (j != mex[j]) {
                grundy[i] = j;
                break;
            }
        }
    }

    writeln(grundy[K] ? "First" : "Second");
}
