#include using namespace std; int main() { int N; { cin >> N; } int64_t V; { cin >> V; } vector A(N); { for (int i = 0; i < N; ++i) cin >> A[i]; } int64_t s = accumulate(A.begin(), A.end(), (int64_t) 0); if (s <= V) { cout << "Draw" << endl; return 0; } vector d(1 << N, -1); { function dfs = [&](int64_t v, int s) { if (~d[s]) return d[s]; d[s] = 0; for (int i = 0; i < N; ++i) if (s >> i & 1) { if (A[i] <= v) { d[s] |= !dfs(v - A[i], s ^ 1 << i); } } return d[s]; }; dfs(V, (1 << N) - 1); } cout << (d[(1 << N) - 1] ? "First" : "Second") << endl; }