//https://onlinejudge.u-aizu.ac.jp/beta/room.html#KUPC2020Spring/problems/E
#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<b;i++)
#define rrep(i,a,b) for(int i=a;i>=b;i--)
#define fore(i,a) for(auto &i:a)
#define all(x) (x).begin(),(x).end()
//#pragma GCC optimize ("-O3")
using namespace std; void _main(); int main() { cin.tie(0); ios::sync_with_stdio(false); _main(); }
typedef long long ll; const int inf = INT_MAX / 2; const ll infl = 1LL << 60;
template<class T>bool chmax(T& a, const T& b) { if (a < b) { a = b; return 1; } return 0; }
template<class T>bool chmin(T& a, const T& b) { if (b < a) { a = b; return 1; } return 0; }
//---------------------------------------------------------------------------------------------------
/*---------------------------------------------------------------------------------------------------
　　　　　　　　　　　 ∧＿∧
　　　　　 ∧＿∧ 　（´<_｀ ）　 Welcome to My Coding Space!
　　　　 （ ´_ゝ`）　/　 ⌒i     @hamayanhamayan0
　　　　／　　　＼　 　  |　|
　　　 /　　 /￣￣￣￣/　　|
　 ＿_(__ﾆつ/　    ＿/ .| .|＿＿＿＿
　 　　　＼/＿＿＿＿/　（u　⊃
---------------------------------------------------------------------------------------------------*/







int grundy[10][10][10][10][10];
void labo() {
	rep(a, 0, 10) rep(b, 0, 10) rep(c, 0, 10) rep(d, 0, 10) rep(e, 0, 10) {
		set<int> gr;
		if (0 < a) gr.insert(grundy[a - 1][b][c][d][e]);
		if (0 < b) gr.insert(grundy[a][b - 1][c][d][e]);
		if (0 < c) gr.insert(grundy[a][b][c - 1][d][e]);
		if (0 < d) gr.insert(grundy[a][b][c][d - 1][e]);
		if (0 < e) gr.insert(grundy[a][b][c][d][e - 1]);
		if (0 < a && 0 < b && 0 < c && 0 < d && 0 < e) gr.insert(grundy[a - 1][b - 1][c - 1][d - 1][e - 1]);

		while (gr.count(grundy[a][b][c][d][e])) grundy[a][b][c][d][e]++;

		printf("g[%d][%d][%d][%d][%d] = %d (%d)\n", a, b, c, d, e, grundy[a][b][c][d][e], a + b + c + d + e);
	}
}
void labo2() {
	rep(a, 0, 10) rep(b, 0, 10) rep(c, 0, 10) rep(d, 0, 10) {
		set<int> gr;
		if (0 < a) gr.insert(grundy[0][a - 1][b][c][d]);
		if (0 < b) gr.insert(grundy[0][a][b - 1][c][d]);
		if (0 < c) gr.insert(grundy[0][a][b][c - 1][d]);
		if (0 < d) gr.insert(grundy[0][a][b][c][d - 1]);
		if (0 < a && 0 < b && 0 < c && 0 < d) gr.insert(grundy[0][a - 1][b - 1][c - 1][d - 1]);

		while (gr.count(grundy[0][a][b][c][d])) grundy[0][a][b][c][d]++;

		printf("g[%d][%d][%d][%d] = %d (%d)\n", a, b, c, d, grundy[0][a][b][c][d], a + b + c + d);
	}
}
void labo3() {
	rep(a, 0, 10) rep(b, 0, 10) rep(c, 0, 10) {
		set<int> gr;
		if (0 < a) gr.insert(grundy[0][0][a - 1][b][c]);
		if (0 < b) gr.insert(grundy[0][0][a][b - 1][c]);
		if (0 < c) gr.insert(grundy[0][0][a][b][c - 1]);
		if (0 < a && 0 < b && 0 < c) gr.insert(grundy[0][0][a - 1][b - 1][c - 1]);

		while (gr.count(grundy[0][0][a][b][c])) grundy[0][0][a][b][c]++;

		printf("g[%d][%d][%d] = %d (%d)\n", a, b, c, grundy[0][0][a][b][c], a + b + c);
	}
}

void labo4() {
	rep(a, 0, 10) rep(b, 0, 10) {
		set<int> gr;
		if (0 < a) gr.insert(grundy[0][0][0][a - 1][b]);
		if (0 < b) gr.insert(grundy[0][0][0][a][b - 1]);
		if (0 < a && 0 < b) gr.insert(grundy[0][0][0][a - 1][b - 1]);

		while (gr.count(grundy[0][0][0][a][b])) grundy[0][0][0][a][b]++;

		printf("g[%d][%d] = %d (%d)\n", a, b, grundy[0][0][0][a][b], a + b);
	}
}







int N, A[201010];
//---------------------------------------------------------------------------------------------------
void _main() {
	cin >> N;
	rep(i, 0, N) cin >> A[i];

	if (N % 2 == 1) {
		int tot = 0;
		rep(i, 0, N) tot = (tot + A[i]) % 2;

		if (tot % 2 == 0) cout << "Second" << endl;
		else cout << "First" << endl;
	}
	else {
		int tot = 0;
		rep(i, 0, N) tot = (tot + A[i]) % 2;

		int mi = inf;
		rep(i, 0, N) chmin(mi, A[i]);

		if (tot % 2 == 0 && mi % 2 == 0) cout << "Second" << endl;
		else cout << "First" << endl;
	}
}





/* ///////////////////////// writeup1 start
///////////////////////// writeup2 start
///////////////////////// writeup2 end */
//　


Measured memory_bytes: 3968