#include using namespace std; using ll = long long int; #define rep(i, n) for (int i = 0; i < int(n); ++i) int n; ll V, a[20]; ll sum[1 << 22] = {}; int dp[1 << 22][2]; // turn(先手or後手)の必勝か bool f(int msk, int turn) { if (sum[msk] > V) return 1; assert(msk != (1 << n) - 1); if (dp[msk][turn] != -1) return dp[msk][turn]; rep(i, n) { if (msk & (1 << i)) continue; if (!f(msk | (1 << i), !turn)) return dp[msk][turn] = 1; } return dp[msk][turn] = 0; } int main() { cin >> n >> V; rep(i, 1 << n) rep(j, 2) dp[i][j] = -1; rep(i, n) cin >> a[i]; if (accumulate(a, a + n, 0LL) <= V) { cout << "Draw\n"; return 0; } rep(msk, 1 << n) { rep(i, n) { if (msk & (1 << i)) sum[msk] += a[i]; } } cout << (f(0, 0) ? "First\n" : "Second\n"); }