#include #include #include using lint = long long; void solve() { int n; lint m; std::cin >> n >> m; std::vector xs(n); for (auto& x : xs) std::cin >> x; std::reverse(xs.begin(), xs.end()); lint score = 0; for (auto x : xs) { // get all stone lint nscore = x - m - score; if (x > 1) { // leave a stone nscore = std::max(nscore, (x - 1) - (1 - m) + score); } score = nscore; } std::cout << (score > 0 ? "First" : "Second") << "\n"; } int main() { std::cin.tie(nullptr); std::ios::sync_with_stdio(false); solve(); return 0; }