#include #include #include #include #include #include #include using namespace std; using ll = long long; int n; ll a[20]; char dp[1 << 20]; int dfs(int k, ll v) { if (dp[k] >= 0) return dp[k]; int r = 1; for (int i = 0; i < n; i++) { if (k & 1 << i) continue; ll u = v - a[i]; if (u < 0) continue; if (dfs(k ^ 1 << i, u) == 1) { r = 0; break; } } return dp[k] = r; } int main() { cin >> n; ll v; cin >> v; ll s = 0; for (int i = 0; i < n; i++) { cin >> a[i]; s += a[i]; } if (s <= v) { cout << "Draw" << endl; quick_exit(0); } memset(dp, -1, sizeof(dp)); int r = dfs(0, v); if (r == 0) { cout << "First" << endl; } else if (r == 1) { cout << "Second" << endl; } return 0; }