#include using namespace std; int main() { int64_t n, v; cin >> n >> v; vector a(n); for (int i = 0; i < n; i++) { cin >> a.at(i); } const int64_t s = accumulate(a.begin(), a.end(), 0L); if (s <= v) { puts("Draw"); return 0; } const int t = 1 << n; vector ok(t); for (int i = 0; i < t; i++) { int64_t x = 0; for (int j = 0; j < n; j++) { if (i >> j & 1) { x += a.at(j); } } ok.at(i) = x <= v; } vector win(t); for (int i = t - 1; i >= 0; i--) { if (not ok.at(i)) { win.at(i) = true; continue; } for (int j = 0; j < n; j++) { if (i >> j & 1) continue; int next = i + (1 << j); if (not win.at(next)) { win.at(i) = true; break; } } } if (win.at(0)) { puts("First"); } else { puts("Second"); } }