#include #include #include using namespace std; using ll = long long; ll n, v; vector a; int main() { cin >> n >> v; a.resize(n); for (int i = 0; i < n; i++)cin >> a[i]; ll sum = 0; for (int i = 0; i < n; i++)sum += a[i]; if (sum <= v) { cout << "Draw" << endl; return 0; } vector dp(1 << n); for (int used = (1 << n) - 1; used >= 0; used--) { ll remain = v; for (int i = 0; i < n; i++) { if (used & (1 << i))remain -= a[i]; } if (remain <= 0)continue; bool canWin = false; for (int i = 0; i < n; i++) { if ((used & 1 << i) == 0 && remain >= a[i]) { used ^= 1 << i; if (!dp[used])canWin = true; used ^= 1 << i; } } dp[used] = canWin; } cout << (dp[0] ? "First" : "Second") << endl; return 0; }