#include <bits/stdc++.h>
using namespace std;
using lint     = long long;
const lint inf = 1LL << 60;
const lint mod = 1000000007;

template <class T>
bool chmax(T &a, const T &b) {
    return (a < b) ? (a = b, 1) : 0;
}
template <class T>
bool chmin(T &a, const T &b) {
    return (b < a) ? (a = b, 1) : 0;
}

int main() {
    cin.tie(nullptr);
    ios::sync_with_stdio(false);
    lint n;
    cin >> n;
    vector<lint> a(n);
    lint tot  = 0;
    lint mini = inf;
    for (int i = 0; i < n; ++i) {
        cin >> a[i];
        tot += a[i];
        chmin(mini, a[i]);
    }
    if (n % 2 == 1) { // no flip
        if (tot % 2 == 0)
            cout << "Second"
                 << "\n";
        else
            cout << "First"
                 << "\n";
    } else {
        if (tot % 2 == 0) {
            if (mini % 2 == 1)
                cout << "First"
                     << "\n";
            else
                cout << "Second"
                     << "\n";
        } else {
            cout << "First"
                 << "\n";
        }
    }
    return 0;
}

### Prompt

Please create a solution in CPP 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 <bits/stdc++.h>
using namespace std;
using lint     = long long;
const lint inf = 1LL << 60;
const lint mod = 1000000007;

template <class T>
bool chmax(T &a, const T &b) {
    return (a < b) ? (a = b, 1) : 0;
}
template <class T>
bool chmin(T &a, const T &b) {
    return (b < a) ? (a = b, 1) : 0;
}

int main() {
    cin.tie(nullptr);
    ios::sync_with_stdio(false);
    lint n;
    cin >> n;
    vector<lint> a(n);
    lint tot  = 0;
    lint mini = inf;
    for (int i = 0; i < n; ++i) {
        cin >> a[i];
        tot += a[i];
        chmin(mini, a[i]);
    }
    if (n % 2 == 1) { // no flip
        if (tot % 2 == 0)
            cout << "Second"
                 << "\n";
        else
            cout << "First"
                 << "\n";
    } else {
        if (tot % 2 == 0) {
            if (mini % 2 == 1)
                cout << "First"
                     << "\n";
            else
                cout << "Second"
                     << "\n";
        } else {
            cout << "First"
                 << "\n";
        }
    }
    return 0;
}

```