#define _CRT_SECURE_NO_WARNINGS #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; #define INF (1<<29) #define rep(i,n) for(int i=0;i<(int)(n);i++) #define all(v) v.begin(),v.end() #define uniq(v) v.erase(unique(all(v)),v.end()) int n; long long a[100000]; long long s[100001]; bool dfs(int x,int y) { if (x == y)return false; long long ss = s[y] - s[x]; int e = lower_bound(a + x, a + y, (ss+y-x-1) / (y - x)) - a; return (e < y && !dfs(x, e)) || (x < e && !dfs(e, y)); } int main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n; rep(i, n)cin >> a[i]; rep(i, n)s[i+1] = a[i]; rep(i, n)s[i + 1] += s[i]; cout << (dfs(0, n) ? "First" : "Second") << endl; return 0; }