Two people are playing Nimble! The rules of the game are:

The game is played on a line of $n$ squares, indexed from $\mbox{0}$ to $n-1$. Each square $\boldsymbol{i}$ (where $0\leq i<n$) contains $c_i$ coins. For example: 

The players move in alternating turns. During each move, the current player must  remove exactly $\mbox{1}$ coin from square $\boldsymbol{i}$ and move it to square $j$ if and only if $0\leq j<i$.
The game ends when all coins are in square $\mbox{0}$ and nobody can make a move. The first player to have no available move loses the game.

Given the value of $n$ and the number of coins in each square, determine whether the person who wins the game is the first or second person to move. Assume both players move optimally.

Input Format

The first line contains an integer, $\mathbf{T}$, denoting the number of test cases. 

Each of the $2T$ subsequent lines defines a test case. Each test case is described over the following two lines:

An integer, $n$, denoting the number of squares.
$n$ space-separated integers, $c_0,c_1,\ldots,c_{n-1}$, where each $c_i$ describes the number of coins at square $\boldsymbol{i}$.

Constraints

$1\leq T\leq10^4$
$1\leq n\leq100$
$0\leq c_i\leq10^9$

Output Format

For each test case, print the name of the winner on a new line (i.e., either $\textbf{First}$ or $\textbf{Second}$).

Sample Input
2
5
0 2 3 0 6
4
0 0 0 0

Sample Output
First
Second

Explanation

Explanation for $1^{st}$ testcase: 

The first player will shift one coin from $\textit{square}_2$ to $\textit{square}_0$. Hence, the second player is left with the squares $[1,2,2,0,6]$. Now whatever be his/her move is, the first player can always nullify the change by shifting a coin to the same square where he/she shifted it. Hence the last move is always played by the first player, so he wins. 

Exlanation for $2^{nd}$ testcase: 

There are no coins in any of the squares so the first player cannot make any move, hence second player wins.

Source: hackerrank | Difficulty: EASY
Tags: Game theory


Solutions:
test = int(input())
for _ in range(test):
	n = int(input())
	ar = list(map(int, input().strip().split()))
	result = []
	for i in range(len(ar)):
		result.append(ar[i] % 2)
	xor = 0
	for (i, n) in enumerate(result):
		xor = xor ^ i * n
	if xor == 0:
		print('Second')
	else:
		print('First')


for t in range(int(input())):
	n = int(input())
	x = [int(a) for a in input().split()]
	s = 0
	for i in range(n):
		if x[i] % 2 == 1:
			s ^= i
	if s == 0:
		print('Second')
	else:
		print('First')


from functools import reduce
test = int(input().strip())
for each in range(test):
	n = int(input().strip())
	ar = [int(i) for i in input().strip().split(' ')]
	arr = []
	for i in range(1, n):
		if ar[i] % 2 == 1:
			arr.append(i)
	if len(arr) == 0:
		print('Second')
		continue
	g = int(reduce(lambda a, b: a ^ b, arr))
	if g == 0:
		print('Second')
	else:
		print('First')


t = int(input())
for T in range(t):
	n = int(input())
	a = list(map(int, input().strip().split()))
	xora = 0
	for i in range(len(a)):
		num = a[i]
		if num % 2 == 1:
			xora ^= i
	if xora == 0:
		print('Second')
	else:
		print('First')


import sys
for _ in range(int(input())):
	n = int(input())
	if n > 0 and n < 101:
		heaps = input().split(' ')
		xor = 0
		for d in range(1, int(n)):
			if int(heaps[d]) > 0:
				if int(heaps[d]) % 2 == 0:
					xor ^= 0
				else:
					xor ^= d
		if xor == 0:
			print('Second')
		else:
			print('First')


for game in range(int(input())):
	n = int(input())
	squares = [int(x) for x in input().split()]
	nim = []
	exception = True
	for i in range(1, n):
		if squares[i] != 0:
			exception = False
	if exception:
		print('Second')
		continue
	for i in range(1, n):
		if squares[i] > 1:
			nim.append(i)
			nim.append(i)
		if squares[i] % 2 == 1:
			nim.append(i)
	if len(nim) == 1:
		if nim[0] == 1:
			print('Second')
		else:
			print('First')
		continue
	result = 0
	for i in nim:
		result = i ^ result
	if result == 0:
		print('Second')
	else:
		print('First')


t1 = int(input())
for t in range(t1):
	n = input()
	a = [int(x) for x in input().split()]
	b = 0
	for i in range(1, len(a)):
		if a[i] > 0:
			if a[i] % 2 == 0:
				c = 0
			else:
				c = i
			b = b ^ c
	if b == 0:
		print('Second')
	else:
		print('First')


for k in range(int(input())):
	n = input()
	a = [int(x) for x in input().split()]
	b = 0
	for i in range(1, len(a)):
		if a[i] > 0:
			if a[i] % 2 == 0:
				c = 0
			else:
				c = i
			b = b ^ c
	if b == 0:
		print('Second')
	else:
		print('First')


from functools import reduce
for _ in range(int(input())):
	_ = input()
	s = [0, 0] + [i for (i, x) in enumerate(input().split(' ')) if int(x) % 2]
	print('First' if reduce(lambda x, y: x ^ y, s) else 'Second')


t = int(input())
for _ in range(t):
	n = int(input())
	a = [int(x) for x in input().split()]
	r = 0
	for i in range(n):
		if a[i] % 2:
			r = r ^ i
	if r:
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	l = [int(x) for x in input().split()]
	k = 0
	for p in range(1, n):
		x = l[p]
		if x % 2 == 1:
			k ^= p
	if k == 0:
		print('Second')
	else:
		print('First')


for _ in range(int(input())):
	n = int(input())
	a = [int(x) for x in input().split()]
	b = 0
	for i in range(1, len(a)):
		if a[i] > 0:
			if a[i] % 2 == 0:
				c = 0
			else:
				c = i
			b = b ^ c
	if b == 0:
		print('Second')
	else:
		print('First')


for _ in range(int(input())):
	n = int(input())
	arr = [int(i) for i in input().split()]
	nimsum = 0
	for i in range(n):
		if arr[i] % 2 == 1:
			nimsum ^= i
	if nimsum == 0:
		print('Second')
	else:
		print('First')


for _ in range(int(input())):
	input()
	x = y = 0
	for i in map(int, input().split()):
		x ^= y if i & 1 else 0
		y += 1
	print('First' if x else 'Second')


tc = int(input())
for t in range(tc):
	n = int(input())
	arr = list(map(int, input().split()))
	k = 0
	for i in range(1, n):
		if arr[i] > 0:
			if arr[i] % 2 == 0:
				k ^= 0
			else:
				k ^= i
	print('Second') if k == 0 else print('First')


t = int(input())
for i in range(t):
	n = int(input())
	a = [int(x) for x in input().split()]
	b = 0
	for i in range(1, len(a)):
		if a[i] > 0:
			if a[i] % 2 == 0:
				c = 0
			else:
				c = i
			b = b ^ c
	if b == 0:
		print('Second')
	else:
		print('First')


t = int(input())
while t > 0:
	t -= 1
	n = int(input())
	win = 0
	inputList = [int(x) for x in input().split(' ')]
	for i in range(1, n):
		if inputList[i] > 0:
			if inputList[i] % 2 == 0:
				oe = 0
			else:
				oe = i
			win ^= oe
	if win == 0:
		print('Second')
	else:
		print('First')


t = int(input())
for j in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	b = 0
	for i in range(1, len(a)):
		if a[i] > 0:
			if a[i] % 2 == 0:
				c = 0
			else:
				c = i
			b = b ^ c
	if b == 0:
		print('Second')
	else:
		print('First')


t = int(input())
for _ in range(t):
	n = int(input())
	c = [int(i) for i in input().split()]
	nim_sum = 0
	for (i, cup) in enumerate(c):
		if cup % 2:
			nim_sum = int.__xor__(nim_sum, i)
	for i in range(n):
		if i < int.__xor__(nim_sum, i):
			print('First')
			break
	else:
		print('Second')


t = int(input())
for i in range(t):
	num_sq = int(input())
	piles = [int(x) for x in input().split(' ')]
	sum = 0
	for i in range(1, num_sq):
		if piles[i] % 2 != 0:
			sum ^= i
	if sum == 0:
		print('Second')
	else:
		print('First')


from functools import reduce
for _ in range(int(input())):
	n = int(input())
	squares = list(map(int, input().split()))
	if n == 1:
		print('Second')
	elif reduce(lambda x, y: x ^ y, [i if squares[i] % 2 == 1 else 0 for i in range(1, n)]) == 0:
		print('Second')
	else:
		print('First')


n = int(input().strip())
a = []
for i in range(n):
	m = int(input())
	a_t = [int(a_temp) for a_temp in input().strip().split(' ')]
	a.append(a_t)
for j in a:
	(b, c) = (0, 0)
	for i in range(1, len(j)):
		if j[i] % 2 == 0:
			c = 0
		else:
			c = i
		b = b ^ c
	if b == 0:
		print('Second')
	else:
		print('First')


for _ in range(int(input().strip())):
	(__, heaps) = (input(), list(map(int, input().strip().split())))
	pile_sum = sum(heaps)
	b = 0
	for i in range(1, len(heaps)):
		if heaps[i] > 0:
			if heaps[i] % 2 == 0:
				c = 0
			else:
				c = i
			b = b ^ c
	if b == 0:
		print('Second')
	else:
		print('First')


t = int(input())
for _ in range(t):
	n = int(input())
	r = 0
	for (j, k) in enumerate(map(int, input().strip().split())):
		if k % 2 == 1:
			r ^= j
	if r == 0:
		print('Second')
	else:
		print('First')


for _ in range(int(input())):
	n = int(input())
	m = list(map(int, input().split()))
	s = 0
	for (i, mm) in enumerate(m):
		if mm % 2:
			s ^= i
	if s:
		print('First')
	else:
		print('Second')


t = int(input().strip())
for t0 in range(t):
	n = int(input().strip())
	board = list(map(int, input().strip().split(' ')))
	xor = 0
	for (i, num) in enumerate(board):
		if num % 2 != 0:
			xor ^= i
	if xor == 0:
		print('Second')
	else:
		print('First')


tests = int(input())
for test in range(tests):
	n = int(input())
	a = list(map(int, input().split()))
	moves = 0
	for i in range(1, len(a)):
		if a[i] % 2 == 1:
			moves ^= i
	if moves != 0:
		print('First')
	else:
		print('Second')


def solve(coins):
	b = 0
	for (i, coin) in enumerate(coins[1:], start=1):
		if coin > 0:
			if coin % 2 == 0:
				c = 0
			else:
				c = i
			b ^= c
	return 'Second' if b == 0 else 'First'

def main():
	for _ in range(int(input())):
		n = int(input())
		coins = list(map(int, input().split()))
		print(solve(coins))
main()


import sys
num_test_cases = int(input().strip())
for _ in range(num_test_cases):
	num_squares = int(input().strip())
	num_coins = [int(a_temp) for a_temp in input().strip().split(' ')]
	nim_sum = 0
	for (i, n_coins) in enumerate(num_coins):
		if i == 0:
			continue
		if n_coins % 2 == 0:
			continue
		else:
			nim_sum ^= i
	if nim_sum != 0:
		print('First')
	else:
		print('Second')


from functools import reduce
g = int(input())
for i in range(g):
	n = int(input())
	l = [int(i) for i in input().split()]
	temp = 0
	for i in range(len(l)):
		if l[i] % 2 == 1:
			temp ^= i
	if temp == 0:
		print('Second')
	else:
		print('First')


from operator import xor
from functools import reduce
for _ in range(int(input().strip())):
	input()
	squares = map(int, input().strip().split(' '))
	next(squares)
	print('First' if reduce(xor, (i for (i, x) in enumerate(squares, 1) if x % 2), 0) else 'Second')


for _ in range(int(input())):
	n_squares = int(input())
	res = 0
	for (i, n) in enumerate(map(int, input().split())):
		if n % 2:
			res ^= i
	print('First' if res != 0 else 'Second')


t = int(input())
for t0 in range(t):
	n = int(input())
	arr = [int(x) for x in input().strip().split()]
	k = 0
	for i in range(n):
		if arr[i] % 2 == 1:
			k ^= i
	print('Second' if k == 0 else 'First')


t = int(input())
for x in range(t):
	n = int(input())
	a = [int(y) for y in input().strip().split(' ')]
	xor = 0
	for y in range(1, n):
		if a[y] % 2 == 1:
			xor = xor ^ y
	if xor == 0:
		print('Second')
	else:
		print('First')


t = int(input())
for i in range(t):
	n = int(input())
	l = list(map(int, input().split(' ')))
	a = 0
	for j in range(1, n):
		if l[j] % 2 != 0:
			a ^= j
	if a == 0:
		print('Second')
	else:
		print('First')


a = []
t = int(input())
for _ in range(t):
	n = int(input())
	assert n
	arr = list(map(int, input().split()))
	xorsum = 0
	for (i, val) in enumerate(arr):
		if val % 2:
			xorsum = xorsum ^ i
	if xorsum:
		a.append('First')
	else:
		a.append('Second')
for i in range(len(a)):
	print(a[i])


from functools import reduce
from operator import xor
for _ in range(int(input())):
	input()
	print('First' if reduce(xor, (i for (i, x) in enumerate(map(int, input().split())) if x & 1), 0) else 'Second')


cases = int(input())
for i in range(cases):
	n = int(input())
	a = input().split()
	last = 0
	for j in range(1, len(a)):
		new = 0
		if int(a[j]) % 2 == 0:
			new = 0
		else:
			new = j
		last = new ^ last
	if last == 0:
		print('Second')
	else:
		print('First')


import sys
for t in range(int(input())):
	squares = int(input())
	coins = [int(x) for x in input().split()]
	b = 0
	for i in range(1, len(coins)):
		if coins[i] > 0:
			if coins[i] % 2 == 0:
				c = 0
			else:
				c = i
			b = b ^ c
	if b == 0:
		print('Second')
	else:
		print('First')


T = int(input().strip())
for i in range(T):
	_ = input()
	from functools import reduce
	print('Second' if reduce(lambda a, b: a ^ b, map(lambda x: x[0] * (int(x[1]) % 2), enumerate(input().split()))) == 0 else 'First')


inf = float('inf')
read_ints = lambda : list(map(int, input().split()))

def solve(n, C):
	acum = 0
	for i in range(1, n):
		if C[i] % 2 == 0:
			acum ^= 0
		else:
			acum ^= i
	if acum > 0:
		return 'First'
	return 'Second'
T = int(input())
for _ in range(T):
	n = int(input())
	C = read_ints()
	print(solve(n, C))


t = int(input())
for t0 in range(t):
	N = int(input())
	count = 0
	a = [int(x) for x in input().split(' ')]
	for (i, x) in enumerate(a):
		if x % 2 == 1:
			count ^= i
	if count == 0:
		print('Second')
	else:
		print('First')


def firstWins(c):
	x = 0
	for (idx, ci) in enumerate(c):
		if ci % 2 == 1:
			x ^= idx
	if x == 0:
		return False
	else:
		return True
t = int(input())
for iT in range(t):
	n = int(input())
	c = [int(_) for _ in input().strip().split()]
	if firstWins(c):
		print('First')
	else:
		print('Second')


T = int(input())
for i1 in range(T):
	S = 0
	input()
	A = [int(m) for m in input().strip().split()]
	for (I2, i2) in enumerate(A):
		if i2 % 2 == 1:
			S ^= I2
	print('First') if S != 0 else print('Second')


res = dict()
res[0] = 'Second'
res[1] = 'First'
for _ in range(int(input())):
	N = int(input().strip())
	arr = list(map(int, input().strip().split()))
	s = 0
	for y in range(1, N):
		if arr[y] > 0:
			if arr[y] % 2 == 1:
				s = s ^ y
	if s == 0:
		print(res[0])
	else:
		print(res[1])


T = int(input())
for _ in range(T):
	n = int(input())
	a = [int(x) for x in input().strip().split()]
	total = 0
	for i in range(0, n):
		if a[i] % 2 == 1:
			total = total ^ i
	if total == 0:
		print('Second')
	else:
		print('First')


t = int(input().strip())
for a0 in range(t):
	n = int(input().strip())
	coins = [int(temp_p) for temp_p in input().strip().split(' ')]
	piles = [0]
	for i in range(1, n):
		if coins[i] % 2 == 1:
			piles.append(i)
	k = 1
	while k < max(piles):
		k *= 2
	winSec = True
	while k > 0 and winSec:
		s = 0
		for (i, p) in enumerate(piles):
			if not k > p:
				piles[i] -= k
				s += 1
		if s % 2 == 1:
			winSec = False
		k = int(k / 2)
	if not winSec:
		print('First')
	else:
		print('Second')


g = int(input())
for _ in range(g):
	n = int(input())
	piles = list(map(int, input().split()))
	xored = 0
	for (i, pile) in enumerate(piles):
		if pile % 2 == 1:
			xored ^= i
	print('Second' if xored == 0 else 'First')


for t in range(int(input())):
	n = int(input())
	c = list(map(int, input().split()))
	x = 0
	for i in range(1, n):
		if c[i] % 2:
			x ^= i
	print('First' if x > 0 else 'Second')


num = int(input())
for i in range(num):
	input()
	A = list(map(int, input().strip().split(' ')))
	key = 0
	for i in range(len(A)):
		if i != 0:
			if i == 1:
				if A[1] % 2 == 0:
					key = 0
				else:
					key = 1
			elif A[i] % 2 != 0:
				key = key ^ i
			else:
				key = key ^ 0
	if key == 0:
		print('Second')
	else:
		print('First')


t = int(input())
for _ in range(t):
	n = int(input())
	c = [int(temp_c) for temp_c in input().strip().split(' ')]
	r = 0
	for i in range(n):
		if c[i] % 2 == 1:
			r ^= i
	if r == 0:
		print('Second')
	else:
		print('First')


for t in range(int(input())):
	n = int(input())
	c = [int(i) for i in input().split()]
	nimsum = 0
	for i in range(1, n):
		nimsum ^= i * (c[i] % 2)
	print('First' if nimsum else 'Second')


for _ in range(int(input())):
	n = int(input())
	elems = list(map(lambda x: int(x) % 2, input().strip().split(' ')))
	xor = 0
	for (idx, elem) in enumerate(elems):
		if elem > 0:
			xor ^= idx
	if xor > 0:
		print('First')
	else:
		print('Second')


q = int(input())
for _ in range(q):
	n = int(input())
	p = list(map(int, input().split()))
	total = 0
	for i in range(0, n):
		if p[i] % 2 == 1:
			total = total ^ i
	first = total != 0
	print('First' if first else 'Second')


for _ in range(int(input())):
	n = int(input())
	coins = list(map(int, input().split()))
	s = 0
	for (i, coin) in enumerate(coins):
		if coin & 1:
			s = s ^ i
	print('First') if s else print('Second')


for _ in range(int(input())):
	n = input()
	a = [int(x) for x in input().split()]
	b = 0
	for i in range(1, len(a)):
		if a[i] > 0:
			if a[i] % 2 == 0:
				c = 0
			else:
				c = i
			b = b ^ c
	if b == 0:
		print('Second')
	else:
		print('First')


t = int(input().strip())
for _ in range(t):
	n = int(input().strip())
	piles = list(map(int, input().strip().split(' ')))
	xor_sum = 0
	for (n, pile) in enumerate(piles):
		if pile % 2 == 1:
			xor_sum = xor_sum ^ n
	if xor_sum == 0:
		print('Second')
	else:
		print('First')


for _ in range(int(input())):
	n = input()
	a = [int(x) for x in input().split()]
	b = 0
	for i in range(1, len(a)):
		if a[i] > 0:
			if a[i] % 2 == 0:
				c = 0
			else:
				c = i
			b = b ^ c
	if b == 0:
		print('Second')
	else:
		print('First')


from functools import reduce
T = int(input().strip())
for i in range(T):
	n = int(input().strip())
	arr = [int(arr_temp) for arr_temp in input().strip().split(' ')]
	nimsum = 0
	for j in range(n):
		nimsum ^= j * (arr[j] % 2)
	if nimsum:
		print('First')
	else:
		print('Second')


for _ in range(int(input().strip())):
	n = int(input().strip())
	a = list(map(int, input().strip().split()))
	s = 0
	for i in range(n):
		if a[i] % 2 == 1:
			s ^= i
	if s > 0:
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	a = [int(x) for x in input().split()]
	b = 0
	for i in range(1, len(a)):
		if a[i] > 0:
			if a[i] % 2 == 0:
				c = 0
			else:
				c = i
			b = b ^ c
	if b == 0:
		print('Second')
	else:
		print('First')


t = int(input().strip())
for i in range(t):
	n = int(input().strip())
	c = [int(temp) for temp in input().strip().split(' ')]
	score = 0
	for (j, ctemp) in enumerate(c):
		if ctemp > 0 and ctemp % 2 == 1:
			score ^= j
	if score == 0:
		print('Second')
	else:
		print('First')


T = int(input())
for id in range(T):
	n = int(input())
	v = list(map(int, input().split()))
	xor_odd = 0
	for i in range(1, n):
		val = v[i]
		if val % 2 == 1:
			xor_odd ^= i
	if xor_odd == 0:
		print('Second')
	else:
		print('First')


for i in range(int(input())):
	(n, p) = (input(), 0)
	a = []
	a[0:] = map(int, input().split())
	for z in range(len(a)):
		if a[z] % 2 == 1:
			p = p ^ z
	print('First') if p > 0 else print('Second')


g = int(input())
for gi in range(g):
	n = int(input())
	s = [int(s) for s in input().split()]
	nim = 0
	for (i, j) in enumerate(s):
		if j % 2 != 0:
			nim ^= i
	if nim == 0:
		print('Second')
	else:
		print('First')


t = int(input())
for ti in range(t):
	n = int(input())
	a = [int(ai) for ai in input().strip().split(' ')]
	b = 0
	for i in range(n):
		if a[i] > 0:
			if a[i] % 2 == 0:
				c = 0
			else:
				c = i
			b = b ^ c
	if b == 0:
		print('Second')
	else:
		print('First')


for _ in range(int(input())):
	input()
	xor = 0
	coins = [int(x) for x in input().split()]
	for n in range(len(coins)):
		if coins[n] % 2 == 1:
			xor ^= n
	print('Second' if xor == 0 else 'First')


output_buffer = list()
from functools import reduce
import operator
T = int(input())
for _ in range(T):
	n = int(input())
	c = list(map(int, input().split()))
	winner = reduce(operator.xor, (i for (i, ci) in enumerate(c) if ci % 2 == 1), 0)
	output_buffer.append('First' if winner else 'Second')
print('\n'.join(output_buffer))


from operator import xor
from functools import reduce
for _ in range(int(input())):
	input()
	nums = (int(x) for x in input().split())
	win = reduce(xor, (i for (i, x) in enumerate(nums) if x % 2), 0)
	print('First' if win else 'Second')


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


for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	res = 0
	for i in range(0, n):
		if arr[i] % 2 == 1:
			res ^= i
	if res == 0:
		print('Second')
	else:
		print('First')


t = int(input())
for t_0 in range(t):
	n = int(input())
	s = [int(i) for i in input().strip().split(' ')]
	sum1 = int(0)
	flag = int(0)
	sum2 = int(0)
	for i in range(n):
		if s[i] % 2 != 0:
			sum1 ^= i
		sum2 += s[i]
	if sum1 != 0:
		print('First')
	else:
		print('Second')


def iin():
	return int(input().strip())

def lstin():
	return list(map(int, input().strip().split()))
for _ in range(iin()):
	iin()
	res = 0
	for (i, s) in enumerate(lstin()):
		if s & 1:
			res ^= i
	print('First' if res else 'Second')


for _ in range(int(input())):
	n = int(input())
	C = [str(j) for (i, j) in zip(input().strip().split(), range(n)) if int(i) % 2]
	if C and eval('^'.join(C)):
		print('First')
	else:
		print('Second')


T = int(input())
for _ in range(T):
	n = int(input())
	C = list(map(int, input().split()))
	s = 0
	for (i, c) in enumerate(C):
		if c % 2 == 1:
			s ^= i
	if s == 0:
		print('Second')
	else:
		print('First')


for games in range(0, int(input())):
	spaces = int(input())
	coins = [int(x) for x in input().split()]
	tell = 0
	c = 0
	for i in range(0, len(coins)):
		if coins[i] % 2 == 0:
			c = 0
		else:
			c = i
		tell = tell ^ c
	if tell == 0:
		print('Second')
	else:
		print('First')


from functools import reduce
for _ in range(int(input())):
	__ = int(input())
	ls = list(map(int, input().split()))
	xs = [i * (ls[i] % 2) for i in range(__)]
	print('First' if reduce(lambda x, y: x ^ y, xs, 0) else 'Second')


def who_win(c, N):
	c = list(map(int, c))
	c_fst = 0
	c_snd = 0
	for i in range(1, N):
		if c[i] > 0:
			if c[i] % 2 == 0:
				q = 0
			else:
				q = i
			c_snd = c_snd ^ q
	if c_snd == 0:
		return 'Second'
	else:
		return 'First'
t = int(input())
for i in range(0, t):
	N = int(input())
	s_in = input().split()
	print(who_win(s_in, N))


T = int(input())
for _ in range(T):
	n = int(input())
	total = 0
	piles = [int(num) for num in input().split()]
	for i in range(n):
		if piles[i] % 2 == 1:
			total ^= i
	if total == 0:
		print('Second')
	else:
		print('First')


def parseInput(f):
	return [f(x) for x in input().split()]
t = int(input())
for _ in range(t):
	n = int(input())
	arr = parseInput(int)
	x = 0
	for i in range(n):
		if arr[i] % 2 == 1:
			x ^= i
	print('First' if x != 0 else 'Second')


n = int(input())
for _ in range(n):
	p = int(input())
	squares = [int(x) for x in input().split()]
	s = 0
	for (i, x) in enumerate(squares):
		if x % 2 != 0:
			s ^= i
	if s == 0:
		print('Second')
	else:
		print('First')


n = int(input())
for i in range(n):
	k = int(input())
	li = list(map(int, input().strip().split(' ')))
	b = 0
	for j in range(0, len(li)):
		if li[j] > 0:
			if li[j] % 2 == 0:
				c = 0
			else:
				c = j
			b = b ^ c
	if b == 0:
		print('Second')
	else:
		print('First')


n = int(input())
for _ in range(n):
	_ = int(input())
	l = list(map(int, input().split()))
	s = 0
	for (i, e) in enumerate(l):
		if e % 2 == 1:
			s = s ^ i
	if s == 0:
		print('Second')
	else:
		print('First')


import sys
games = int(input().strip())
for _ in range(games):
	n = int(input().strip())
	coins = list(map(int, input().split()))
	xor = 0
	for i in range(n):
		temp = i if coins[i] % 2 == 1 else 0
		xor = xor ^ temp
	print('First') if xor > 0 else print('Second')


for i in range(int(input())):
	(n, s, c) = (int(input()), 0, 0)
	for j in input().split():
		l = int(j)
		if l % 2 != 0:
			s ^= c
		c += 1
	if s == 0:
		print('Second')
	else:
		print('First')


for _ in range(int(input())):
	n = input()
	a = [int(x) for x in input().split()]
	b = 0
	for i in range(1, len(a)):
		if a[i] > 0:
			if a[i] % 2 == 0:
				c = 0
			else:
				c = i
			b ^= c
	if b == 0:
		print('Second')
	else:
		print('First')


import sys

def solve(aa):

	def nimsum(aa):
		ns = 0
		for a in aa:
			ns ^= a
		return ns
	dd = []
	for (i, a) in enumerate(aa):
		dd.extend([i] * (a % 2))
	ns = nimsum(dd)
	ones = 0
	if len(aa) > 2:
		ones = aa[1]
	print('ns=%d ones=%d dd=%s' % (ns, ones, dd), file=sys.stderr)
	if not dd:
		return False
	if ones == len(aa):
		return ones % 2 == 0
	return ns > 0
t = int(input())
for _ in range(t):
	_ = int(input())
	aa = list(map(int, input().split()))
	if solve(aa):
		print('First')
	else:
		print('Second')


def nimble(n, dices):
	ans = 0
	for (i, dice) in enumerate(dices[1:], 1):
		if dice % 2 == 1:
			ans ^= i
	return ans > 0

def main():
	t = int(input())
	for _ in range(t):
		n = int(input())
		dices = list(map(int, input().split()))
		nimble(n, dices)
		print('First' if nimble(n, dices) else 'Second')
main()


T = int(input().strip())

def exor(s):
	a = 0
	for i in s:
		a = a ^ i
	return a
for t in range(T):
	n = int(input().strip())
	coinPiles = list(map(int, input().strip().split(' ')))
	a = 0
	for i in range(len(coinPiles)):
		if coinPiles[i] % 2 == 1:
			a = a ^ i
	if a == 0:
		print('Second')
	else:
		print('First')


import functools as ft
for i in range(int(input())):
	input()
	g = 0
	count = 0
	for p in map(int, input().split()):
		g ^= p % 2 * count
		count += 1
	print('First' if g else 'Second')


def solve(cs):
	stacks = []
	for (i, c) in enumerate(cs):
		if c % 2 == 1:
			stacks.append(i)
	nim_sum = 0
	for stack in stacks:
		nim_sum ^= stack
	return 'First' if nim_sum != 0 else 'Second'
T = int(input())
for _ in range(T):
	n = int(input())
	cs = [int(v) for v in input().split(' ')]
	print(solve(cs))


from functools import reduce
from operator import xor, add
from collections import Counter

def win(c):
	if not any(c):
		return False
	s = (x for (x, k) in enumerate(c) if k % 2)
	return bool(reduce(xor, s, 0))
for _ in range(int(input())):
	n = int(input())
	c = list(map(int, input().split()))
	print('First' if win(c) else 'Second')


for _ in range(int(input())):
	_ = input()
	tmp = 0
	for (i, x) in enumerate(map(int, input().split())):
		if i == 0 or x % 2 == 0:
			continue
		tmp ^= i
	if tmp:
		print('First')
	else:
		print('Second')


for _ in range(int(input().strip())):
	n = int(input().strip())
	ls = list(map(int, input().strip().split()))
	x = 0
	for (i, var) in enumerate(ls):
		if var % 2:
			x = x ^ i
	if x == 0:
		print('Second')
	else:
		print('First')


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().strip().split(' ')))
	c = []
	for j in range(1, len(a)):
		if a[j] != 0:
			if a[j] % 2 == 1:
				c.append(j)
	if c == []:
		print('Second')
	else:
		b = 0
		for l in c:
			b = b ^ l
		if b == 0:
			print('Second')
		else:
			print('First')


import functools
g = int(input())
for _ in range(g):
	n = int(input())
	p = list(map(int, input().split()))
	t = 0
	for i in range(len(p)):
		if p[i] % 2:
			t ^= i
	if t:
		print('First')
	else:
		print('Second')


t = int(input())
for _ in range(t):
	n = int(input())
	r = 0
	arr = [int(x) for x in input().strip().split()]
	for (i, x) in enumerate(arr):
		if x % 2 == 1:
			r ^= i
	print(['First', 'Second'][r == 0])


from math import log

def nim(l):
	c = 30
	l_ = list((str(bin(b)[2:].zfill(c)) for b in l))
	i = 0
	re = 'Second'
	while True:
		if list((a[i] for a in l_)).count('1') % 2 == 1:
			re = 'First'
			break
		elif i >= c - 1:
			break
		else:
			i += 1
	print(re)
g = int(input())
for i in range(g):
	n = int(input())
	s = list(map(int, input().split()))
	l = []
	for i in range(n):
		if s[i] % 2 == 1:
			l.append(i)
	nim(l)


for _ in range(int(input())):
	n = input()
	a = [int(x) for x in input().strip().split(' ')]
	b = 0
	for i in range(1, len(a)):
		if a[i] > 0:
			if a[i] % 2 == 0:
				c = 0
			else:
				c = i
			b = b ^ c
	if b == 0:
		print('Second')
	else:
		print('First')