There are $n$ piles of stones, where the $i$-th pile has $a_i$ stones. Two people play a game, where they take alternating turns removing stones.

In a move, a player may remove a positive number of stones from the first non-empty pile (the pile with the minimal index, that has at least one stone). The first player who cannot make a move (because all piles are empty) loses the game. If both players play optimally, determine the winner of the game.


-----Input-----

The first line contains a single integer $t$ ($1\le t\le 1000$)  — the number of test cases. Next $2t$ lines contain descriptions of test cases.

The first line of each test case contains a single integer $n$ ($1\le n\le 10^5$)  — the number of piles.

The second line of each test case contains $n$ integers $a_1,\ldots,a_n$ ($1\le a_i\le 10^9$)  — $a_i$ is equal to the number of stones in the $i$-th pile.

It is guaranteed that the sum of $n$ for all test cases does not exceed $10^5$.


-----Output-----

For each test case, if the player who makes the first move will win, output "First". Otherwise, output "Second".


-----Example-----
Input
7
3
2 5 4
8
1 1 1 1 1 1 1 1
6
1 2 3 4 5 6
6
1 1 2 1 2 2
1
1000000000
5
1 2 2 1 1
3
1 1 1

Output
First
Second
Second
First
First
Second
First



-----Note-----

In the first test case, the first player will win the game. His winning strategy is:   The first player should take the stones from the first pile. He will take $1$ stone. The numbers of stones in piles will be $[1, 5, 4]$.  The second player should take the stones from the first pile. He will take $1$ stone because he can't take any other number of stones. The numbers of stones in piles will be $[0, 5, 4]$.  The first player should take the stones from the second pile because the first pile is empty. He will take $4$ stones. The numbers of stones in piles will be $[0, 1, 4]$.  The second player should take the stones from the second pile because the first pile is empty. He will take $1$ stone because he can't take any other number of stones. The numbers of stones in piles will be $[0, 0, 4]$.  The first player should take the stones from the third pile because the first and second piles are empty. He will take $4$ stones. The numbers of stones in piles will be $[0, 0, 0]$.  The second player will lose the game because all piles will be empty.

Difficulty: interview

Starter code:

Solutions:
from math import *
from collections import *
from random import *
from bisect import *
import sys
input=sys.stdin.readline
t=int(input())
while(t):
    t-=1
    n=int(input())
    a=list(map(int,input().split()))
    z=a.count(1)
    if(z==n):
        if(z%2):
            print("First")
        else:
            print("Second")
    else:
        tu=0
        for i in a:
            if(i!=1):
                break
            else:
                tu+=1
        if(tu%2):
            print("Second")
        else:
            print("First")


import sys
input = sys.stdin.readline
for nt in range(int(input())):
	n = int(input())
	a = list(map(int,input().split()))
	x = a.count(1)
	if x==n:
		if n%2:
			print ("First")
		else:
			print ("Second")
		continue
	for i in range(n):
		if a[i]==1:
			continue
		else:
			ind = i
			break
	if ind%2:
		ans = 2
	else:
		ans = 1
	if ans==1:
		print ("First")
	else:
		print ("Second")


tests = int(input())
for t in range(tests):
    n = int(input())
    ls = list(map(int, input().split()))
    count_one = 0
    for item in ls:
        if item == 1:
            count_one+=1
        else:
            break
    if count_one != n:
        if count_one % 2 == 1:
            print('Second')
        else:
            print('First')
    else:
        if count_one % 2 == 1:
            print('First')
        else:
            print('Second')


for t in range(int(input())):
    n=int(input())
    x = list(map(int, input().split()))
    if sum(x)==n:
        if n%2:
            print("First")
        else:
            print("Second")
    else:
        i=0
        while x[i]==1:
            i+=1
        if i % 2:
            print("Second")
        else:
            print("First")


for __ in range(int(input())):
    n = int(input())
    ar = list(map(int, input().split()))
    ar.reverse()
    ans = 0
    for elem in ar:
        if elem == 1:
            ans += 1
        else:
            ans = 1
    if ans % 2 != 0:
        print('First')
    else:
        print('Second')

t = int(input())
for _ in range(t):
    x = int(input())
    l = list(map(int, input().split()))
    gets = True
    for z in list(reversed(l))[1:]:
        if z == 1:
            gets = not gets
        else:
            gets = True
    if gets:
        print("First")
    else:
        print("Second")



import sys
import math
from collections import defaultdict as dd
mod=1000000007
T=1
T=int(sys.stdin.readline())
for _ in range(T):
    n=int(input())
    l=list(map(int,input().split()))
    if(sum(l)==n):
        if n&1:
            print('First')
        else:
            print('Second')
        continue
    x=0
    for i in range(n):
        if(l[i]!=1):
            x=i
            break
    
    if(True):
        if(x&1):
            print('Second')
        else:
            print('First')


import sys
input=sys.stdin.readline
t=int(input())
for _ in range(t):
    n=int(input())
    arr=list(map(int,input().split()))
    ones=0
    for i in arr:
        if i==1:
            ones+=1
        else:
            break
    if(ones<n):
        if(ones%2==0):
            print("First")
        else:
            print("Second")
    else:
        if(ones%2==1):
            print("First")
        else:
            print("Second")

        


for _ in range(int(input())):
    n = int(input())
    a = list(map(int, input().split()))
    c = 0
    for i in range(n):
        if a[i] == 1:
            c += 1
        else:
            break
    if c == n:
        if c % 2 != 0:
            print('First')
        else:
            print('Second')
    else:
        if c % 2 == 0:
            print('First')
        else:
            print('Second')


#import sys
#sys.setrecursionlimit(10**9)
for tt in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	won = 0
	for i in range(n-1):
		if(a[i]==1):
			won = (won+1)%2
		elif(a[i+1]==1):
			a[i+1] = 2
	if(won==0):
		print("First")
	else:
		print("Second")


from bisect import bisect_left as bl
from bisect import bisect_right as br
from heapq import heappush,heappop,heapify
import math
from collections import *
from functools import reduce,cmp_to_key
import sys
input = sys.stdin.readline
M = mod = 998244353
def factors(n):return sorted(set(reduce(list.__add__, ([i, n//i] for i in range(1, int(n**0.5) + 1) if n % i == 0))))
def inv_mod(n):return pow(n, mod - 2, mod)
 
def li():return [int(i) for i in input().rstrip('\n').split()]
def st():return input().rstrip('\n')
def val():return int(input().rstrip('\n'))
def li2():return [i for i in input().rstrip('\n')]
def li3():return [int(i) for i in input().rstrip('\n')]


for _ in range(val()):
    n = val()
    l = li()
    s = sum(l)

    ans = 1
    if 1 not in l:
        ans = 1
    else:
        if s == n:
            ans = n & 1
        else:
            i = 0
            while l[i] == 1:
                ans = 1 - ans
                i += 1






    print('First' if ans else 'Second')

"""T=int(input())
for _ in range(0,T):
    n=int(input())
    a,b=map(int,input().split())
    s=input()
    s=[int(x) for x in input().split()]
    for i in range(0,len(s)):
        a,b=map(int,input().split())"""


T=int(input())
for _ in range(0,T):
    n=int(input())
    s=[int(x) for x in input().split()]
    if(len(set(s))==1 and s[0]==1):
        if(len(s)%2==0):
            print('Second')
        else:
            print('First')
    else:
        c=0
        for i in range(0,len(s)):
            if(s[i]!=1):
                break
            else:
                c+=1
        if(c%2==0):
            print('First')
        else:
            print('Second')
            
   



for _ in range(int(input())):
    n = int(input())
    #n, m = map(int, input().split())
    A = list(map(int, input().split()))
    x = 1
    for i in range(len(A) - 2, - 1, -1):
        if A[i] == 1:
            x += 1
        else:
            if x % 2 == 0:
                x = 1
    if x % 2 == 1:
        print('First')
    else:
        print('Second')


import math
######################################################
# ps template
def mi(): return map(int, input().split())
def ii(): return int(input())
def li(): return list(map(int, input().split()))
def si(): return input().split()

#######################################################
t = ii()
for _ in range(t):
    n = ii()
    a = li()
    ind = n-1
    for i in range(n):
        if a[i]>1:
            ind = i
            break
    if ind%2==0:
        print("First")
    else:
        print("Second")

from math import *
t=int(input())
for _ in range(t):
    n=int(input())
    a=list(map(int,input().split()))
    for i in range(n):
        if a[i]!=1:
            k=i
            break
    else:
        k=n-1
    if k%2!=0:
        print('Second')
    else:
        print('First')


t=int(input())
for you in range(t):
    n=int(input())
    l=input().split()
    li=[int(i) for i in l]
    dp=[0 for i in range(n)]
    dp[-1]=1
    for i in range(n-2,-1,-1):
        if(li[i]==1):
            dp[i]=3-dp[i+1]
        else:
            dp[i]=1
    if(dp[0]==1):
        print("First")
    else:
        print("Second")


for _ in range(int(input())):
    n=int(input())
    a=list(map(int,input().split()))
    c=a.count(1)
    if c==n:
        if n%2==0:
            print("Second")
        else:
            print("First")
    else:
        j=0
        for i in range(n):
            if a[i]!=1:
                j=i
                break
        if j%2==0:
            print("First")
        else:
            print("Second")


import sys
# sys.stdin = open('input.txt', 'r') 
# sys.stdout = open('output.txt', 'w')
 
import math
import collections
from sys import stdin,stdout,setrecursionlimit
import bisect as bs
setrecursionlimit(2**20)
MOD = 998244353
    
T = int(stdin.readline())
# T = 1

for _ in range(T):
    n = int(stdin.readline())
    # n,m = list(map(int,stdin.readline().split()))
    a = list(map(int,stdin.readline().split()))
    # q = int(stdin.readline())
    # b = list(map(int,stdin.readline().split()))
    # q = list(map(int,stdin.readline().split()))
    # b = list(map(int,stdin.readline().split()))
    # s = stdin.readline().strip('\n')
    ind = -1
    for i in range(n):
        if(a[i] > 1):
            ind = i
            break
    if(ind == -1):
        if(n%2 == 0):
            print("Second")
        else:
            print("First")
        continue
    if(ind%2 == 0):
        print("First")
    else:
        print("Second")

def main(r):
    n = int(input())
    lst = list(map(int, input().split()))
    win = 0
    i = 0
    while i < n and lst[i] == 1:
        i += 1
    if i % 2 == 0:
        if i == n:
            print("Second")
        else:
            print("First")
    else:
        if i == n:
            print("First")
        else:
            print("Second")






def __starting_point():
    t = int(input())
    for i in range(t):
        main(i)

__starting_point()

import sys
input = sys.stdin.readline
 
t = int(input())
letters = 'abcdefghijklmnopqrst'
 
for _ in range(t):
    l = int(input())
    b = list(map(int, input().split()))
    c = 0
    
    if max(b) == 1:
        if l%2==0:
            print('Second')
        else:
            print('First')
    else:
        for j in range(len(b)):
            if b[j] > 1:
                if c==0:
                    print('First')
                else:
                    print('Second')
                break
            else:
                c += 1
                c = c%2

tests = int(input())
for test in range(tests):
    n = int(input())
    a = [int(i) for i in input().split()]
    w = [False] * n
    w[n - 1] = True
    for i in range(n - 2, -1, -1):
        if a[i] == 1:
            w[i] = not w[i + 1]
        else:
            w[i] = True
    if w[0]:
        print('First')
    else:
        print('Second')


#
#    ------------------------------------------------
#           ____          _     Generatered using
#          / ___|        | |
#         | |    __ _  __| | ___ _ __  ______ _
#         | |   / _` |/ _` |/ _ \ '_ \|_  / _` |
#         | |__| (_| | (_| |  __/ | | |/ / (_| |
#          \____\____|\____|\___|_| |_/___\____|
#
#      GNU Affero General Public License v3.0
#    ------------------------------------------------
#    Author   : prophet
#    Created  : 2020-07-21 10:48:41.540377
#    UUID     : ueVtZeZVGsGHjX2O
#    ------------------------------------------------
#
production = True

import sys, math, collections

def input(input_format = 0, multi = 0):

    if multi > 0: return [input(input_format) for i in range(multi)]
    else:
        next_line = sys.stdin.readline()[:-1]

        if input_format >= 10:
            use_list = False
            input_format = int(str(input_format)[-1])
        else: use_list = True

        if input_format == 0: formatted_input = [next_line]
        elif input_format == 1: formatted_input = list(map(int, next_line.split()))
        elif input_format == 2: formatted_input = list(map(float, next_line.split()))
        elif input_format == 3: formatted_input = list(next_line)
        elif input_format == 4: formatted_input = list(map(int, list(next_line)))
        elif input_format == 5: formatted_input = next_line.split()
        else: formatted_input = [next_line]

        return formatted_input if use_list else formatted_input[0]

def out(output_line, output_format = 0, newline = True):

    formatted_output = ""

    if output_format == 0: formatted_output = str(output_line)
    elif output_format == 1: formatted_output = " ".join(map(str, output_line))
    elif output_format == 2: formatted_output = "\n".join(map(str, output_line))

    print(formatted_output, end = "\n" if newline else "")

def log(*args):
    if not production:
        print("$$$", end = "")
        print(*args)

enu = enumerate

ter = lambda a, b, c: b if a else c

ceil = lambda a, b: -(-a // b)

def mapl(iterable, format = 0):
    
    if format == 0: return list(map(int, iterable))
    elif format == 1: return list(map(str, iterable))
    elif format == 2: return list(map(list, iterable))
#
#   >>>>>>>>>>>>>>> START OF SOLUTION <<<<<<<<<<<<<<
#


def solve():

    n = input(11)
    a = input(1)

    t = 0

    for i, j in enu(a):
        if j != 1:
            out(ter(i & 1, "Second", "First"))
            return
    else:
        out(ter(n & 1, "First", "Second"))

    return


for i in range(input(11)): solve()
# solve()

#
#   >>>>>>>>>>>>>>>> END OF SOLUTION <<<<<<<<<<<<<<<
#


for _ in range(int(input())):
    n=int(input())
    a=list(map(int,input().split()))
    for i in range(n):
        if a[i]!=1:
            if i%2:
                print("Second")
            else:
                print("First")
            break
    else:
        if n%2:
            print("First")
        else:
            print("Second")

n = int(input())

for i in range(n):
    q =  int(input())
    r = [int(p) for p in input().split(' ')]
    z = 0
    
    c = 0
    while (r[z] == 1) and (z < q-1):
        c = 1- c
        z +=1
    x = 'First' if c == 0 else 'Second'   
    print(x)