#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; const int LOOP = 68; void solve(vector& grundy) { grundy.assign(2*LOOP+1, 0); grundy[0] = 0; grundy[1] = 1; grundy[2] = 1; for(int i=3; i<=2*LOOP; ++i){ set s; s.insert(grundy[i-2]); int a = 0; int b = i - 3; while(a <= b){ s.insert(grundy[a] ^ grundy[b]); ++ a; -- b; } for(const int x : s){ if(grundy[i] != x) break; ++ grundy[i]; } } } int main() { int n; cin >> n; vector v(n); for(int i=0; i> v[i]; sort(v.begin(), v.end()); vector grundy; solve(grundy); int i = 0; int ans = 0; while(i < n){ int len = 1; ++ i; while(i < n && v[i] == v[i-1] + 1){ ++ len; ++ i; } if(len <= LOOP) ans ^= grundy[len]; else ans ^= grundy[LOOP+(len-1)%LOOP+1]; } if(ans == 0) cout << "Second" << endl; else cout << "First" << endl; return 0; }