#include #define rep(n) for(int i=0;i Pll; typedef pair Pii; const ll MOD = 1000000007; const long double EPS = 10e-10; struct Game{ map mp; Game(int n){ dfs(n); } int dfs(int n){ if(n <= 0) return 0; else if(mp[n] != 0) return mp[n]; set used; used.insert(dfs(n-2)); used.insert(dfs(n-3)); for(int i=3;i<=(n+1)/2;i++){ used.insert(dfs(i-2)^dfs(n-(i+1))); } int g = 0; while(used.find(g) != used.end()) g++; mp[n] = g; return g; } }; int main(){ std::ios::sync_with_stdio(0); cin.tie(0); Game game = Game(80); int n; cin >> n; int a[n]; rep(n) cin >> a[i]; sort(a, a+n); int m = 1, grundy = 0; reppp(i, 1, n){ if(a[i] - a[i-1] <= 1){ m++; }else{ if(m > 80) m -= m/34*34; grundy ^= game.mp[m]; m = 1; } } if(m > 1) grundy ^= game.mp[m]; cout << (grundy?"First":"Second") << endl; }