#include <algorithm>
#include <cmath>
#include <cstring>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>
using namespace std;
#define rep(i, n) for(int i = 0; (i) < (n); (i)++)
#define FOR(i, m, n) for(int i = (m); (i) < (n); (i)++)
#define All(v) (v).begin(), (v).end()
#define MP make_pair
#define pb push_back
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
const int INF = 1 << 30;
const ll LINF = 1LL << 61;
const int MOD = 1e9 + 7;

int main() {
    int N;
    cin >> N;
    vector<ll> A(N);
    ll sum = 0;
    ll mi = INF;
    rep(i, N) {
        cin >> A[i];
        sum += A[i];
        mi = min(mi, A[i]);
    }
    if(N % 2) {
        if(sum % 2) {
            cout << "First" << endl;
        } else {
            cout << "Second" << endl;
        }
    } else {
        if(sum % 2) { // sente
            if(mi % 2) {
                cout << "First" << endl;
            } else {
                cout << "First" << endl;
            }
        } else { // gote
            if(mi % 2) {
                cout << "First" << endl;
            } else {
                cout << "Second" << endl;
            }
        }
    }
    return 0;
}

### Prompt

Generate a cpp solution to the following problem:

Problem statement

There is a positive integer sequence $ a_1, a_2, \ ldots, a_N $ of length $ N $.

Consider the following game, which uses this sequence and is played by $ 2 $ players on the play and the play.

* Alternately select one of the following operations for the first move and the second move.
* Select a positive term in the sequence for $ 1 $ and decrement its value by $ 1 $.
* When all terms in the sequence are positive, decrement the values ​​of all terms by $ 1 $.



The one who cannot operate first is the loser.

When $ 2 $ players act optimally, ask for the first move or the second move.

Constraint

* $ 1 \ leq N \ leq 2 \ times 10 ^ 5 $
* $ 1 \ leq a_i \ leq 10 ^ 9 $
* All inputs are integers



* * *

input

Input is given from standard input in the following format.


$ N $
$ a_1 $ $ a_2 $ $ ... $ $ a_N $


output

Output `First` when the first move wins, and output` Second` when the second move wins.

* * *

Input example 1


2
1 2


Output example 1


First


The first move has to reduce the value of the $ 1 $ term by $ 1 $ first, and then the second move has to reduce the value of the $ 2 $ term by $ 1 $.

If the first move then decrements the value of the $ 2 $ term by $ 1 $, the value of all terms in the sequence will be $ 0 $, and the second move will not be able to perform any operations.

* * *

Input example 2


Five
3 1 4 1 5


Output example 2


Second


* * *

Input example 3


8
2 4 8 16 32 64 128 256


Output example 3


Second


* * *

Input example 4


3
999999999 1000000000 1000000000


Output example 4


First






Example

Input

2
1 2


Output

First

### Response

```cpp
#include <algorithm>
#include <cmath>
#include <cstring>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>
using namespace std;
#define rep(i, n) for(int i = 0; (i) < (n); (i)++)
#define FOR(i, m, n) for(int i = (m); (i) < (n); (i)++)
#define All(v) (v).begin(), (v).end()
#define MP make_pair
#define pb push_back
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
const int INF = 1 << 30;
const ll LINF = 1LL << 61;
const int MOD = 1e9 + 7;

int main() {
    int N;
    cin >> N;
    vector<ll> A(N);
    ll sum = 0;
    ll mi = INF;
    rep(i, N) {
        cin >> A[i];
        sum += A[i];
        mi = min(mi, A[i]);
    }
    if(N % 2) {
        if(sum % 2) {
            cout << "First" << endl;
        } else {
            cout << "Second" << endl;
        }
    } else {
        if(sum % 2) { // sente
            if(mi % 2) {
                cout << "First" << endl;
            } else {
                cout << "First" << endl;
            }
        } else { // gote
            if(mi % 2) {
                cout << "First" << endl;
            } else {
                cout << "Second" << endl;
            }
        }
    }
    return 0;
}

```