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: EASY
Tags: Dynamic programming

Game theory
Skill types: Dynamic programming

Starter code:

Solutions:
for _ in [0] * int(input()):
	n = int(input())
	s = [int(a) for a in input().split()]
	flag = False
	ct = 0
	for i in s:
		ct += 1
		if i != 1:
			ans = ct % 2
			flag = True
			break
	if flag == True:
		if ans % 2 == 0:
			print('Second')
		else:
			print('First')
	elif flag == False:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	f = 1
	for i in range(n):
		if i == n - 1:
			if f == 1:
				print('First')
			else:
				print('Second')
			break
		elif a[i] == 1:
			if f == 0:
				f = 1
			else:
				f = 0
		elif a[i] > 1:
			if f == 1:
				print('First')
			else:
				print('Second')
			break


T = int(input())
for __ in range(T):
	n = int(input())
	A = [int(i) for i in input().split()]
	result = sum(A)
	if result == n:
		if result % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		for i in range(1, len(A) + 1):
			if A[i - 1] > 1:
				if i % 2 == 0:
					print('Second')
					break
				else:
					print('First')
					break


t = int(input())
for o in range(t):
	n = int(input())
	a = [int(l) for l in input().split()]
	for k in range(n):
		if a[k] > 1:
			if (k + 1) % 2 == 0:
				print('Second')
				break
			else:
				print('First')
				break
	else:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')


import sys
import math
input = sys.stdin.readline
from functools import cmp_to_key

def pi():
	return int(input())

def pl():
	return int(input(), 16)

def ti():
	return list(map(int, input().split()))

def ts():
	s = input()
	return list(s[:len(s) - 1])

def invr():
	return map(int, input().split())
f = []

def factMod(n, m):
	global f
	f = [1 for i in range(n + 1)]
	f[0] = 1
	for i in range(1, n + 1):
		f[i] = f[i - 1] * i % m

def fact(n):
	global f
	f = [1 for i in range(n)]
	for i in range(1, n):
		f[i] = f[i - 1] * i

def fast_mod_exp(a, b, m):
	res = 1
	while b > 0:
		if b & 1:
			res = res * a % m
		a = a * a % m
		b = b >> 1
	return res

def inverseMod(n, m):
	return fast_mod_exp(n, m - 2, m)

def ncrMod(n, r, m):
	if r == 0:
		return 1
	if n < r:
		return 0
	return f[n] * inverseMod(f[n - r], m) % m * inverseMod(f[r], m) % m

def ncr(n, r):
	if r == 0:
		return 1
	if n < r:
		return 0
	return f[n] / (f[r] * f[n - r])

def nc2(n):
	return n * (n - 1) / 2

def main():
	B()

def A():
	t = pi()
	while t:
		t -= 1
		[n, m] = ti()
		a = ti()
		b = ti()
		mpa = [0 for i in range(1005)]
		mpb = [0 for i in range(1005)]
		for i in range(n):
			mpa[a[i]] = 1
		for i in range(m):
			mpb[b[i]] = 1
		f = 0
		for i in range(1005):
			if mpa[i] == 1 and mpb[i] == 1:
				print('YES')
				print(1, i)
				f = 1
				break
		if f == 0:
			print('NO')

def B():
	t = pi()
	while t:
		t -= 1
		n = pi()
		a = ti()
		if n == 1:
			print('First')
			continue
		isAllOne = 1
		for i in range(n):
			if a[i] != 1:
				isAllOne = 0
				break
		if isAllOne:
			if n % 2 == 0:
				print('Second')
			else:
				print('First')
			continue
		if a[0] > 1:
			print('First')
			continue
		turn = 1
		for i in range(n):
			if a[i] > 1:
				if turn == 1:
					print('First')
				else:
					print('Second')
				break
			else:
				turn = 1 if turn == 2 else 2
main()


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)


T = int(input())
for t in range(T):
	n = int(input())
	a = list(map(int, input().split()))
	ans = 1
	i = 0
	while i < n - 1 and a[i] == 1:
		ans = 1 - ans
		i += 1
	if ans == 1:
		print('First')
	else:
		print('Second')


def solution(n, arr):
	i = 0
	while i < n and arr[i] == 1:
		i += 1
	if i == n:
		return 'First' if i % 2 else 'Second'
	else:
		return 'First' if not i % 2 else 'Second'
for test_i in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	print(solution(n, arr))


from collections import *
for u in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	i = 0
	for i in range(n):
		if l[i] != 1:
			break
	if i % 2 != 0:
		print('Second')
	else:
		print('First')


import sys
input = sys.stdin.readline
T = int(input())
for testcase in range(T):
	n = int(input())
	a = list(map(int, input().split()))
	flag = True
	for i in range(n - 2, -1, -1):
		if flag:
			if a[i] == 1:
				flag = False
		else:
			flag = True
	if flag:
		print('First')
	else:
		print('Second')


import os
from io import BytesIO, IOBase
import sys

def main():
	for _ in range(int(input())):
		n = int(input())
		a = list(map(int, input().split()))
		if a == [1] * n:
			print('First' if n & 1 else 'Second')
			continue
		p = 0
		while p < n and a[p] == 1:
			p += 1
		print('Second' if p & 1 else 'First')
	return
BUFSIZE = 1048576

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))

def input():
	return sys.stdin.readline().rstrip('\r\n')
main()


t = int(input())
for i in range(t):
	n = int(input())
	pile_list = list(map(int, input().split()))
	ans = 0
	i = 0
	while i < n and pile_list[i] == 1:
		ans += 1
		i += 1
	if i == n:
		if ans % 2 == 0:
			out = 'Second'
		else:
			out = 'First'
	elif ans % 2 == 0:
		out = 'First'
	else:
		out = 'Second'
	print(out)


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')


t = int(input())
while t:
	t -= 1
	n = int(input())
	arr = list(map(int, input().split()))
	k = 0
	while k < n and arr[k] == 1:
		k += 1
	if k % 2 ^ (k == n):
		print('Second')
	else:
		print('First')


t = int(input())
for qwe in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	if a[0] == 1:
		j = 0
		c = 0
		while j < n and a[j] == 1:
			c += 1
			j += 1
		if c == n:
			if c % 2 == 1:
				print('First')
			else:
				print('Second')
		elif c % 2 == 1:
			print('Second')
		else:
			print('First')
	else:
		print('First')


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


import sys, math, cmath, time
start_time = time.time()

def solve():
	n = inp()
	a = inlt()
	q = 0
	c = 0
	qw = 0
	for i in range(len(a) - 1):
		if a[i] != 1 and qw == 0:
			qw = 1
		if a[i] == 1 and qw == 0:
			c = c + 1
		if a[i] != 1 and qw == 1:
			q = q + 1
	if c % 2 == 0:
		print('First')
	else:
		print('Second')

def main():
	global tt
	if not ONLINE_JUDGE:
		sys.stdin = open('input.txt', 'r')
		sys.stdout = open('output.txt', 'w')
	t = 1
	t = inp()
	for tt in range(t):
		solve()
	if not ONLINE_JUDGE:
		print('Time Elapsed :', time.time() - start_time, 'seconds')
		sys.stdout.close()

def inp():
	return int(input())

def inlt():
	return list(map(int, input().split()))

def insr():
	return input().strip()

def invr():
	return map(int, input().split())

def counter(a):
	q = [0] * max(a)
	for i in range(len(a)):
		q[a[i] - 1] = q[a[i] - 1] + 1
	return q

def counter_elements(a):
	q = dict()
	for i in range(len(a)):
		if a[i] not in q:
			q[a[i]] = 0
		q[a[i]] = q[a[i]] + 1
	return q

def string_counter(a):
	q = [0] * 26
	for i in range(len(a)):
		q[ord(a[i]) - 97] = (q[ord(a[i]) - 97], 1)
	return q

def factors(n):
	q = []
	for i in range(1, int(n ** 0.5) + 1):
		if n % i == 0:
			q.append(i)
			q.append(n // i)
	return list(sorted(list(set(q))))

def prime_factors(n):
	q = []
	while n % 2 == 0:
		q.append(2)
		n = n // 2
	for i in range(3, int(n ** 0.5) + 1, 2):
		while n % i == 0:
			q.append(i)
			n = n // i
	if n > 2:
		q.append(n)
	return list(sorted(q))

def transpose(a):
	(n, m) = (len(a), len(a[0]))
	b = [[0] * n for i in range(m)]
	for i in range(m):
		for j in range(n):
			b[i][j] = a[j][i]
	return b
ONLINE_JUDGE = __debug__
if ONLINE_JUDGE:
	input = sys.stdin.readline
main()


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


for s in [*open(0)][2::2]:
	i = 0
	while s[i:i + 2] == '1 ':
		i += 2
	print('FSiercsotn d'[i // 2 % 2::2])


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


n = int(input())
for i in range(n):
	a = int(input())
	b = [int(i) for i in input().split()]
	if len(b) == 1:
		print('First')
	else:
		s = 0
		flag = 0
		for j in range(0, len(b)):
			s = s + 1
			if b[j] > 1:
				flag = s
				break
		if flag == 0:
			if s % 2 == 0:
				print('Second')
			else:
				print('First')
		elif s % 2 == 0:
			print('Second')
		else:
			print('First')


t = int(input())
for _ in range(t):
	n = int(input())
	data = list(map(int, input().split()))
	dummy = {1: 'First', -1: 'Second'}
	answer = 1
	scount = 0
	for i in data:
		if i > 1:
			break
		else:
			answer *= -1
			scount += 1
	if scount == n:
		answer *= -1
	print(dummy[answer])


t = int(input())
for _ in range(t):
	n = int(input())
	arr = input().split()
	for (i, j) in enumerate(arr):
		if j != '1':
			break
	if i % 2:
		print('Second')
	else:
		print('First')


from collections import defaultdict
for _ in range(int(input())):
	n = int(input())
	l1 = list(map(int, input().split()))
	if n == 1:
		print('First')
	else:
		i = 0
		s = 0
		while i < n - 1:
			if l1[i] == 1:
				s += 1
			else:
				break
			i += 1
		if s % 2 == 0:
			print('First')
		else:
			print('Second')


from sys import stdin

def inp():
	return stdin.buffer.readline().rstrip().decode('utf8')

def itg():
	return int(stdin.buffer.readline())

def mpint():
	return map(int, stdin.buffer.readline().split())
for case in range(itg()):
	n = itg()
	arr = list(mpint())[::-1]
	first_win = True
	for a in arr[1:]:
		if a == 1:
			first_win = not first_win
		else:
			first_win = True
	print('First' if first_win else 'Second')


def game_func(lis, a):
	if list_pi[0] != 1:
		print('First')
	elif a % 2 != 0 and len(list(set(list_pi))) == 1 and (list(set(list_pi))[0] == 1):
		print('First')
	elif a % 2 == 0 and len(list(set(list_pi))) == 1 and (list(set(list_pi))[0] == 1):
		print('Second')
	elif list_pi[1] != 1:
		print('Second')
	else:
		try:
			del list_pi[0]
			del list_pi[0]
		except IndexError:
			print('First')
		else:
			return game_func(list_pi, len(list_pi))
t = int(input())
for h in range(t):
	num_pi = int(input())
	list_pi = list(map(int, input().split()))
	game_func(list_pi, num_pi)


from functools import lru_cache
from sys import stdin, stdout
import sys
from math import *
for __ in range(int(input())):
	n = int(input())
	ar = list(map(int, input().split()))
	if sum(ar) == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		ar = ar[::-1]
		dp = [0] * n
		dp[0] = 1
		for i in range(1, n):
			if ar[i] != 1:
				dp[i] = 1
			elif dp[i - 1] == 1:
				dp[i] = 0
			else:
				dp[i] = 1
		if dp[-1] == 1:
			print('First')
		else:
			print('Second')


t = int(input())
for _ in range(t):
	n1 = int(input())
	li = list(map(int, input().split()))
	lis = []
	for i in range(n1):
		lis.append('c')
	i = n1 - 2
	lis[n1 - 1] = 'a'
	while i >= 0:
		if li[i] != 1:
			lis[i] = 'a'
		elif lis[i + 1] == 'a':
			lis[i] = 'b'
		else:
			lis[i] = 'a'
		i = i - 1
	if lis[0] == 'a':
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1:
		print('First')
		continue
	winner = True
	for i in range(n - 1):
		if a[i] == 1:
			winner ^= 1
		else:
			break
	print('First' if winner else 'Second')


t = int(input())
for i in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	cur = 'First'
	if l[0] != 1:
		print('First')
		continue
	else:
		for a in l[0:-1]:
			if a != 1:
				break
			if a == 1:
				if cur == 'First':
					cur = 'Second'
				else:
					cur = 'First'
		print(cur)


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


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


t = int(input())
for _ in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	index = 0
	count = 0
	while index < n - 1 and arr[index] == 1:
		index += 1
		count += 1
	if count & 1:
		print('Second')
	else:
		print('First')


t = int(input())
while t:
	t = t - 1
	n = int(input())
	a = list(map(int, input().split()))
	b = [0 for i in range(n)]
	cnt = 0
	for i in range(n - 1, -1, -1):
		if a[i] == 1:
			cnt += 1
		else:
			cnt = 0
		b[i] = cnt
	i = 0
	out = 1
	while i < n - 1:
		if a[i] > 1 and b[i + 1] > 0:
			i += b[i + 1]
		elif a[i] == 1:
			out *= -1
		i += 1
	if out == -1:
		print('Second')
	else:
		print('First')


import io
import os
from sys import stdin, stdout
input = io.BytesIO(os.read(0, os.fstat(0).st_size)).readline

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

def main():
	for t in range(int(input())):
		solve()
main()


t = int(input())
while t:
	t -= 1
	n = int(input())
	a = list(map(int, input().split()))
	(f, changed) = (0, 0)
	done = 0
	for i in range(n):
		if a[i] == 1:
			f += 1
		else:
			if f % 2:
				print('Second')
			else:
				print('First')
			done = 1
			break
	if done:
		continue
	if n % 2 == 0:
		print('Second')
	else:
		print('First')


for _ in range(int(input())):
	N = int(input())
	arr = list(map(int, input().split()))
	flag = 1
	if N == 1:
		print('First')
	else:
		if arr[0] == 1:
			count = 1
			for i in range(1, len(arr) - 1):
				if arr[i] == 1:
					count += 1
				else:
					break
		else:
			count = 0
		if count % 2 == 0:
			print('First')
		else:
			print('Second')


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


import math
tot = int(input().strip())
while tot > 0:
	n = int(input().strip())
	a = [int(x) for x in input().strip().split(' ')]
	cnt = 0
	for x in a:
		if x == 1:
			cnt += 1
		else:
			break
	if cnt != n:
		if cnt % 2 == 0:
			print('First')
		else:
			print('Second')
	elif cnt % 2 == 0:
		print('Second')
	else:
		print('First')
	tot -= 1


for _ in range(int(input())):
	n = int(input())
	a = [int(x) for x in input().split()]
	ones = 0
	for i in range(n):
		if a[i] > 1:
			print('Second') if i % 2 else print('First')
			break
		elif a[i] == 1:
			ones += 1
		if i == n - 1:
			print('First') if ones % 2 else print('Second')


for t in range(int(input())):
	n = int(input())
	ar = [0]
	ar.extend(list(map(int, input().split())))
	x = ar.count(1)
	if x == n:
		if n % 2:
			print('First')
		else:
			print('Second')
		continue
	i = 1
	while i <= n:
		if ar[i] > 1:
			if i % 2:
				print('First')
			else:
				print('Second')
			break
		i += 1


import math
import collections
from sys import stdin, stdout, setrecursionlimit
from bisect import bisect_left as bsl
from bisect import bisect_right as bsr
import heapq as hq
setrecursionlimit(2 ** 20)
t = 1
t = int(stdin.readline())
for _ in range(t):
	n = int(stdin.readline())
	a = list(map(int, stdin.readline().rstrip().split()))
	if n == 1:
		print('First')
		continue
	else:
		s = sum(a)
		if s == n and n % 2 == 0:
			print('Second')
		elif s == n and n % 2 == 1:
			print('First')
		else:
			ans = 0
			for i in a:
				ans += 1
				if i != 1:
					break
			if ans % 2 == 1:
				print('First')
			else:
				print('Second')


def solve():
	n = int(input())
	a = list(map(int, input().split()))
	i = 0
	win = True
	while a[i] == 1 and i < n - 1:
		i += 1
		win = not win
	if win:
		print('First')
	else:
		print('Second')
t = int(input())
for test in range(t):
	solve()


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


import sys
INP = lambda : sys.stdin.readline().strip()
INT = lambda : int(INP())
MAP = lambda : map(int, INP().split())
ARR = lambda : [int(i) for i in INP().split()]

def JOIN(arr, x=' '):
	return x.join([str(i) for i in arr])

def EXIT(x='NO'):
	print(x)
	exit()
for _ in range(INT()):
	n = INT()
	arr = ARR()
	c = 0
	for x in arr[:-1]:
		if x > 1:
			break
		c += 1
	if c % 2:
		print('Second')
	else:
		print('First')


import sys
print = sys.stdout.write
for _ in range(int(input())):
	n = int(input())
	ans = 'F'
	a = list(map(int, input().split()))
	c = 0
	for i in range(n):
		if a[i] != 1:
			break
		c += 1
	if c == n:
		if c % 2 == 0:
			ans = 'S'
	elif c % 2 == 1:
		ans = 'S'
	if ans == 'F':
		print('First' + '\n')
	else:
		print('Second' + '\n')


import sys
readline = sys.stdin.readline
t = int(readline())
for _ in range(t):
	n = int(readline())
	A = list(map(int, readline().split()))
	x = 0
	for a in A:
		if a == 1:
			x += 1
		else:
			break
	if x == 0 or (x % 2 == 1 and x == n) or (x % 2 == 0 and x != n):
		print('First')
	else:
		print('Second')


t = int(input())
while t != 0:
	n = int(input())
	arrA = list(map(int, input().split()))
	if len(arrA) == 1:
		print('First')
	else:
		countOne = 0
		for i in range(n - 1):
			if arrA[i] == 1:
				countOne += 1
			else:
				break
		if countOne == 0:
			print('First')
		elif countOne % 2 == 0 and countOne == n:
			print('Second')
		elif countOne % 2 == 0 and countOne != n:
			print('First')
		else:
			print('Second')
	t -= 1


import os
import sys
import math
from io import BytesIO, IOBase
from fractions import Fraction
from collections import defaultdict
from itertools import permutations
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')
for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	s = sum(a)
	if s == n:
		if n % 2 == 1:
			print('First')
		else:
			print('Second')
	else:
		first = 0
		for i in range(n):
			if a[i] != 1:
				if i % 2 == 1:
					first = 1
				break
		if first == 0:
			print('First')
		else:
			print('Second')


def main():
	for _ in range(int(input())):
		n = int(input())
		a = list(map(int, input().split()))
		(x, y) = (1, 0)
		f = False
		for i in range(n):
			if a[i] == 1:
				f = True
				pass
			else:
				break
		if i % 2 == 1 and f:
			print('Second')
		elif f:
			print('First')
		else:
			print('First')
main()


a = int(input())
for x in range(a):
	b = int(input())
	c = list(map(int, input().split()))
	count = 0
	for i in range(b):
		if c[i] == 1:
			count = 1 - count
		elif c[i] > 1:
			count = 1 - count
			break
	if count == 1:
		print('First')
	elif count == 0:
		print('Second')


from __future__ import division, print_function
from fractions import Fraction
import sys
import os
from io import BytesIO, IOBase
from itertools import *
import bisect
from heapq import *
from math import ceil, floor
from copy import *
from collections import deque, defaultdict
from collections import Counter as counter
from itertools import combinations
from itertools import permutations as permutate
from bisect import bisect_left as bl
from operator import *
from bisect import bisect_right as br
from bisect import bisect
BUFSIZE = 8192
from sys import stderr

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')

def print(*args, **kwargs):
	(sep, file) = (kwargs.pop('sep', ' '), kwargs.pop('file', sys.stdout))
	at_start = True
	for x in args:
		if not at_start:
			file.write(sep)
		file.write(str(x))
		at_start = False
	file.write(kwargs.pop('end', '\n'))
	if kwargs.pop('flush', False):
		file.flush()
if sys.version_info[0] < 3:
	(sys.stdin, sys.stdout) = (FastIO(sys.stdin), FastIO(sys.stdout))
else:
	(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
from types import GeneratorType

def iterative(f, stack=[]):

	def wrapped_func(*args, **kwargs):
		if stack:
			return f(*args, **kwargs)
		to = f(*args, **kwargs)
		while True:
			if type(to) is GeneratorType:
				stack.append(to)
				to = next(to)
				continue
			stack.pop()
			if not stack:
				break
			to = stack[-1].send(to)
		return to
	return wrapped_func
mod = 1000000007

def inp():
	return sys.stdin.readline().rstrip('\r\n')

def out(var):
	sys.stdout.write(str(var))

def lis():
	return list(map(int, inp().split()))

def stringlis():
	return list(map(str, inp().split()))

def sep():
	return map(int, inp().split())

def strsep():
	return map(str, inp().split())

def fsep():
	return map(float, inp().split())

def nextline():
	out('\n')

def testcase(t):
	for p in range(t):
		solve()

def pow(x, y, p):
	res = 1
	x = x % p
	if x == 0:
		return 0
	while y > 0:
		if y & 1 == 1:
			res = res * x % p
		y = y >> 1
		x = x * x % p
	return res
from functools import reduce

def factors(n):
	return set(reduce(list.__add__, ([i, n // i] for i in range(1, int(n ** 0.5) + 1) if n % i == 0)))

def gcd(a, b):
	if a == b:
		return a
	while b > 0:
		(a, b) = (b, a % b)
	return a

def prefix_sum(ar):
	return list(accumulate(ar))

def suffix_sum(ar):
	return list(accumulate(ar[::-1]))[::-1]

def N():
	return int(inp())
from collections import defaultdict

def numberOfSetBits(i):
	i = i - (i >> 1 & 1431655765)
	i = (i & 858993459) + (i >> 2 & 858993459)
	return ((i + (i >> 4) & 252645135) * 16843009 & 4294967295) >> 24

def solve():
	c = 0
	n = N()
	ar = lis()
	if ar == [1] * n:
		if n % 2 == 1:
			print('First')
		else:
			print('Second')
		return
	for i in ar:
		if i == 1:
			c += 1
		else:
			break
	if c % 2 == 0:
		print('First')
	else:
		print('Second')
testcase(int(inp()))


from collections import defaultdict as dd
from sys import stdin, stdout
for t in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	if a.count(1) == n:
		if n & 1:
			print('First')
		else:
			print('Second')
		continue
	k = n
	for i in range(n):
		if a[i] != 1:
			k = i
			break
	if k & 1:
		print('Second')
	else:
		print('First')


t = int(input())
while t:
	t -= 1
	n = int(input())
	a = [int(x) for x in input().split()]
	printed = False
	for i in range(n):
		if a[i] > 1:
			if i % 2 == 0:
				print('First')
				printed = True
				break
			else:
				print('Second')
				printed = True
				break
	if not printed:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')


for _ in range(int(input())):
	n = int(input())
	first = True
	second = False
	l = [*map(int, input().split())]
	countOne = 0
	for i in l:
		if i > 1:
			break
		countOne += 1
	if countOne == n:
		if n & 1:
			print('First')
		else:
			print('Second')
	elif countOne & 1:
		print('Second')
	else:
		print('First')


def c():
	n = int(input())
	flag = 0
	c = 0
	l = list(map(int, input().split()))
	if l[0] > 1:
		print('First')
		return
	elif l[0] == 1 and len(set(l)) == 1:
		if n % 2 == 0:
			print('Second')
			return
		else:
			print('First')
			return
	for i in l:
		if i == 1:
			c = c + 1
		else:
			break
	if c % 2 == 0:
		flag = 0
	else:
		flag = 1
	if flag == 0:
		print('First')
		return
	else:
		print('Second')
		return
for _ in range(int(input())):
	c()


import heapq
from collections import deque
from collections import defaultdict
import sys
sys.setrecursionlimit(100000)

def check(lst):
	for (i, a) in enumerate(lst):
		if a != 1:
			return (False, i)
	return (True, None)
I = lambda : list(map(int, input().split(' ')))
for _ in range(int(input())):
	n = I()[0]
	lst = I()
	(b, ind) = check(lst)
	if n == 1 or (b and n % 2 == 1) or (ind != None and ind % 2 == 0):
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	Arr = list(map(int, input().split()))
	if sum(Arr) == n:
		if n & 1 == 1:
			print('First')
		else:
			print('Second')
	else:
		count = 0
		for i in Arr:
			if i == 1:
				count += 1
			else:
				break
		if count & 1 == 1:
			print('Second')
		else:
			print('First')


t = int(input())
zero_codn = 1
for _ in range(t):
	n1 = int(input())
	li = list(map(int, input().split()))
	ekfkme = []
	for i in range(n1):
		ekfkme.append('c')
		if zero_codn:
			continue
	i = n1 - 2
	ekfkme[n1 - 1] = 'a'
	while i >= 0:
		if li[i] != 1 and zero_codn:
			ekfkme[i] = 'a'
		elif ekfkme[i + 1] == 'a':
			ekfkme[i] = 'b'
		else:
			ekfkme[i] = 'a'
		i = i - 1
	if ekfkme[0] == 'a' and zero_codn:
		print('First')
	else:
		print('Second')


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


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


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')


t = int(input())
for test_case in range(t):
	n = [int(x) for x in input().split()]
	n = n[0]
	res = 0
	a = []
	a = [int(y) for y in input().split()]
	res = 'First'
	for i in range(len(a) - 1):
		if a[i] != 1:
			if i % 2 == 0:
				res = 'First'
			else:
				res = 'Second'
			break
		elif i == len(a) - 2:
			if (i - 1) % 2 == 0:
				res = 'First'
			else:
				res = 'Second'
			break
	print(res)


import sys
input = sys.stdin.readline
t = int(input())
for tt in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	ans = 1
	for i in range(n):
		if i == 0:
			if l[i] > 1:
				break
			else:
				continue
		else:
			ans = ans ^ 1
			if l[i] > 1:
				break
	if ans == 1:
		print('First')
	else:
		print('Second')


import math
from collections import Counter
for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	if len(set(a)) == 1 and a[0] == 1:
		if n % 2 != 0:
			print('First')
		else:
			print('Second')
	elif 1 not in a:
		print('First')
	else:
		for i in range(n):
			if a[i] != 1:
				if i % 2 == 0:
					print('First')
					break
				else:
					print('Second')
					break


for _ in range(int(input())):
	n = int(input())
	a = [int(__) for __ in input().split()]
	shit = 0
	for i in a:
		if i == 1:
			shit += 1
		else:
			break
	if shit == n:
		if shit % 2 == 1:
			print('First')
		else:
			print('Second')
	elif shit % 2 == 1:
		print('Second')
	else:
		print('First')


t = int(input())

def solve(n, a):
	for i in range(n):
		if a[i] >= 2:
			if i % 2 == 0:
				print('First')
				return
			else:
				print('Second')
				return
	if n % 2 == 0:
		print('Second')
		return
	else:
		print('First')
		return
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	solve(n, a)


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	m = 0
	while m < n and a[m] == 1:
		m += 1
	print('Second') if (m == n) ^ m % 2 else print('First')


import sys
input = sys.stdin.readline
for _ in range(int(input())):
	n = int(input())
	L = list(map(int, input().split()))
	if len(set(L)) == 1 and L[0] == 1:
		if len(L) & 1 == 1:
			print('First')
		else:
			print('Second')
		continue
	ans = 1
	i = 0
	while i < n:
		if L[i] == 1:
			ans = 3 - ans
		else:
			break
		i += 1
	if ans == 1:
		print('First')
	else:
		print('Second')


t = int(input())
while t > 0:
	s = 'First'
	n = int(input())
	L = list(map(int, input().split()))
	for i in L:
		if i > 1:
			print(s)
			break
		if i <= 1:
			if s == 'First':
				s = 'Second'
			else:
				s = 'First'
	else:
		if s == 'First':
			print('Second')
		else:
			print('First')
	t -= 1


t = int(input())
for _ in range(t):
	ll = int(input())
	m = list(map(int, input().split()))
	ans = 'First'
	for x in m:
		if x == 1:
			if ans == 'First':
				ans = 'Second'
			else:
				ans = 'First'
		else:
			break
	else:
		if ans == 'First':
			ans = 'Second'
		else:
			ans = 'First'
	print(ans)


import math
from collections import defaultdict, deque
from bisect import bisect_left, bisect_right
from sys import stdin

def mp():
	return map(int, stdin.readline().split())

def ml():
	return list(map(int, stdin.readline().split()))
for _ in range(int(input())):
	n = int(input())
	a = ml()
	control = -1
	for i in range(n):
		if a[i] > 1:
			control = i % 2
			break
	if control != -1:
		if control == 0:
			print('First')
		else:
			print('Second')
	else:
		print('First' if n % 2 == 1 else 'Second')


for _ in range(int(input())):
	a = int(input())
	n = list(map(int, input().split()))
	count = 0
	bool = False
	for i in n:
		if i == 1:
			count += 1
		else:
			bool = True
			break
	if bool:
		if count % 2 == 0:
			print('First')
		else:
			print('Second')
	elif count % 2 == 0:
		print('Second')
	else:
		print('First')


case = int(input())
for _ in range(case):
	n = int(input())
	lst = list(map(int, input().split()))
	ans = False
	for i in range(n):
		if lst[i] != 1:
			ans = True
			if i % 2 == 0:
				print('First')
			else:
				print('Second')
			break
	if ans == False:
		if n % 2 == 1:
			print('First')
		else:
			print('Second')


t = int(input())
while t:
	n = int(input())
	a = list(map(int, input().split()))
	f = 0
	for x in range(n):
		if a[x] != 1:
			f = 1
			break
	if f:
		if x % 2 == 0:
			print('First')
		else:
			print('Second')
	elif n % 2 == 0:
		print('Second')
	else:
		print('First')
	t -= 1


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	x = sum(a)
	b = []
	for i in a:
		if i > 1:
			b.append(2)
		else:
			b.append(1)
	if n == 1:
		print('First')
		continue
	else:
		b = b[:-1]
		b = b[::-1]
		if b[0] == 2:
			cur = 1
		else:
			cur = 0
		for i in range(1, len(b)):
			if b[i] == 1 and cur == 1:
				cur = 0
			elif b[i] == 1 and cur == 0:
				cur = 1
			else:
				cur = 1
		if cur == 1:
			print('First')
		else:
			print('Second')


from collections import deque
from math import *
import heapq
t = int(input())
for i in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	if len(l) == 1:
		print('First')
		continue
	if l == [1] * len(l):
		if len(l) % 2 == 0:
			print('Second')
		else:
			print('First')
		continue
	ind = 0
	for j in range(len(l)):
		if l[j] > 1:
			break
	if j % 2 == 1:
		print('Second')
	else:
		print('First')


t = int(input())
for i in range(t):
	n = int(input())
	nums = list(map(int, input().split()))
	ans = 0
	for j in range(n - 1):
		if nums[j] != 1:
			break
		else:
			ans += 1
	if not ans % 2:
		print('First')
	else:
		print('Second')


t = int(input())
for _ in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	key = 0
	arr = []
	s = 0
	for i in range(n):
		if l[i] == 1:
			s += 1
		else:
			if s > 0:
				arr.append(s)
				s = 0
			break
	if s > 0:
		arr.append(s)
	if arr == []:
		arr.append(0)
	if arr[0] == 0:
		print('First')
	elif arr[0] == n:
		if arr[0] % 2 == 0:
			print('Second')
		else:
			print('First')
	elif arr[0] % 2 == 1:
		print('Second')
	else:
		print('First')


import sys, io, os, time
from collections import defaultdict
from collections import OrderedDict
from collections import deque
from itertools import combinations
from itertools import permutations
import bisect, math, heapq
alphabet = 'abcdefghijklmnopqrstuvwxyz'
for ii in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	q = set(a)
	if len(q) == 1 and list(q)[0] == 1:
		print('First' if len(a) % 2 == 1 else 'Second')
		continue
	c = 0
	for i in a:
		if i == 1:
			c += 1
		else:
			break
	if c % 2 == 1:
		print('Second')
	else:
		print('First')


for _ in range(int(input())):
	n = int(input())
	ar = list(map(int, input().split()))
	(w, c1) = (-1, 0)
	i = 0
	p = n
	for j in range(n):
		if ar[j] == 1:
			c1 += 1
	for i in range(n):
		if ar[i] != 1:
			w = i
			break
	if w == -1:
		if n % 2 == 1:
			print('First')
		else:
			print('Second')
	elif w % 2 == 0:
		print('First')
	else:
		print('Second')


def trailone(l):
	c = 0
	for i in l:
		if i == 1:
			c += 1
		else:
			break
	return c

def inp():
	return int(input())

def insr():
	s = input()
	return s

def inlt():
	return list(map(int, input().split()))
r = inp()
for i in range(r):
	l2 = inlt()
	lst = inlt()
	t1 = trailone(lst)
	if t1 == len(lst) and t1 % 2 == 0:
		print('Second\n')
	elif t1 == len(lst) and t1 % 2 == 1:
		print('First\n')
	elif t1 % 2 == 1:
		print('Second\n')
	else:
		print('First\n')


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


import sys
input = lambda : sys.stdin.readline().strip()
t = int(input())
while t:
	t -= 1
	n = int(input())
	a = list(map(int, input().split()))
	ne = [-1] * (n + 1)
	if a[-1] > 1:
		ne[n - 1] = n - 1
	for i in range(n - 2, -1, -1):
		if a[i] > 1:
			ne[i] = i
		else:
			ne[i] = ne[i + 1]
	c = False
	i = 0
	while i < n:
		if a[i] == 1:
			c = not c
			i += 1
		elif ne[i + 1] != -1:
			if ne[i + 1] % 2 == i % 2:
				c = not c
				i += 1
			else:
				c = not c
				a[i] = 1
		else:
			if (n - i) % 2 == 1:
				c = not c
			i += 1
	if c:
		print('First')
	else:
		print('Second')


from sys import stdin
from math import ceil, gcd

def func():
	return
for _ in range(int(stdin.readline())):
	n = int(stdin.readline())
	arr = list(map(int, stdin.readline().split()))
	ans = []
	i = 0
	c = 0
	while i < n:
		if arr[i] == 1:
			c += 1
		else:
			if c > 0 and c % 2 != 0:
				ans.append(1)
			c = 0
			ans.append(arr[i])
		i += 1
	if c > 0 and c % 2 != 0:
		ans.append(1)
	if len(ans) == 0:
		print('Second')
		continue
	x = 0
	for i in range(len(ans)):
		if ans[i] == 1:
			x ^= 1
		elif i != len(ans) - 1:
			if ans[i + 1] == 1:
				if i != len(ans) - 2:
					x ^= 1
		else:
			x ^= 1
	if x == 1:
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	pile_number = int(input())
	stones_list = list(map(int, input().split()))
	if pile_number == 1:
		print('First')
	else:
		pl = 1
		current = pile_number - 1
		while current != -1:
			if pl == 1:
				current -= 1
				pl = 1 - pl
			else:
				if stones_list[current] == 1:
					current -= 1
				else:
					pass
				pl = 1 - pl
		if pl == 0:
			print('First')
		else:
			print('Second')


for z in range(int(input())):
	n = int(input())
	arr = [int(i) for i in input().split()]
	turn = 0
	for i in arr:
		ans = turn
		if i != 1:
			break
		turn = 1 - turn
	if ans == 0:
		print('First')
	else:
		print('Second')


from sys import stdin
g = lambda : stdin.readline().strip()
gl = lambda : g().split()
gil = lambda : [int(var) for var in gl()]
gcl = lambda : list(g())
from collections import deque
(t,) = gil()
for _ in range(t):
	(n,) = gil()
	v = gil()
	pos = 0
	while pos != n and v[pos] == 1:
		pos += 1
	if pos == n:
		if pos & 1:
			print('First')
		else:
			print('Second')
	elif pos & 1:
		print('Second')
	else:
		print('First')


def func(n):
	n = list(map(int, n.split()))
	if n[0] == 1 and len(set(n)) == 1:
		return 'Second' if len(n) % 2 == 0 else 'First'
	if n[0] != 1:
		return 'First'
	front_1_count = 0
	for i in n:
		if i == 1:
			front_1_count += 1
		else:
			break
	return 'First' if front_1_count % 2 == 0 else 'Second'

def main():
	t = int(input())
	t_input = []
	for i in range(t):
		input()
		t_input.append(input())
	for i in list(map(func, t_input)):
		print(i)
main()


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


import sys
ii = lambda : sys.stdin.readline().strip()
idata = lambda : [int(x) for x in ii().split()]

def solve():
	n = int(ii())
	data = idata()
	if data[0] != 1:
		d = [0, 0]
	else:
		d = [1]
	for i in range(n - 1):
		if data[i + 1] == 1:
			d[-1] += 1
		elif d[-1]:
			d += [0]
	if len(d) == 1:
		print('First' if d[0] % 2 else 'Second')
	else:
		print('First' if not d[0] % 2 else 'Second')
	return
for t in range(int(ii())):
	solve()


for _ in range(int(input())):
	n = int(input())
	arr1 = list(map(int, input().split()))
	for i in range(n):
		if arr1[i] > 1 and i & 1:
			print('Second')
			break
		elif arr1[i] > 1 and i % 2 == 0:
			print('First')
			break
	else:
		if n & 1:
			print('First')
		else:
			print('Second')


def modinv(n, p):
	return pow(n, p - 2, p)

def main():
	for case in range(int(input())):
		n = int(input())
		temp = [int(x) for x in input().split()]
		i = 0
		while i < n and temp[i] == 1:
			i += 1
		stones = temp[i:]
		if i % 2 == 0:
			if len(stones) > 0:
				print('First')
			else:
				print('Second')
		elif len(stones) > 0:
			print('Second')
		else:
			print('First')
py2 = round(0.5)
if py2:
	from future_builtins import ascii, filter, hex, map, oct, zip
	range = xrange
import os, sys
from io import IOBase, BytesIO
BUFSIZE = 8192

class FastIO(BytesIO):
	newlines = 0

	def __init__(self, file):
		self._file = file
		self._fd = file.fileno()
		self.writable = 'x' in file.mode or 'w' in file.mode
		self.write = super(FastIO, self).write if self.writable else None

	def _fill(self):
		s = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
		self.seek((self.tell(), self.seek(0, 2), super(FastIO, self).write(s))[0])
		return s

	def read(self):
		while self._fill():
			pass
		return super(FastIO, self).read()

	def readline(self):
		while self.newlines == 0:
			s = self._fill()
			self.newlines = s.count(b'\n') + (not s)
		self.newlines -= 1
		return super(FastIO, self).readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.getvalue())
			(self.truncate(0), self.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		if py2:
			self.write = self.buffer.write
			self.read = self.buffer.read
			self.readline = self.buffer.readline
		else:
			self.write = lambda s: self.buffer.write(s.encode('ascii'))
			self.read = lambda : self.buffer.read().decode('ascii')
			self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')
main()


import sys, os.path
from collections import deque
from fractions import Fraction as f

def IO():
	if os.path.exists('input.txt'):
		sys.stdin = open('input.txt', 'r')
		sys.stdout = open('output.txt', 'w')
	else:
		input = sys.stdin.readline
		print = sys.stdout.write

def nextInt():
	return int(input())

def nextTuple():
	return [int(a) for a in input().split()]

def nextArray():
	return list(map(int, input().split()))

def nextLine():
	return input()

def nextStringArray():
	return list(input().split())
IO()
sb = ''
t = nextInt()
for _ in range(t):
	n = nextInt()
	a = nextArray()
	count = 0
	for i in range(n):
		if a[i] == 1:
			count += 1
	if count == 0:
		print('First')
		continue
	count = 0
	for i in range(n):
		if a[i] != 1:
			break
		count += 1
	if count == n:
		if count % 2 == 0:
			print('Second')
		else:
			print('First')
		continue
	if count % 2 == 0:
		print('First')
	else:
		print('Second')


t = int(input())
while t:
	n = int(input())
	a = list(map(int, input().rstrip().split()))
	dp = [True for i in range(n)]
	if n == 1:
		print('First')
	else:
		for i in range(n - 2, -1, -1):
			if a[i] == 1:
				if dp[i + 1]:
					dp[i] = False
				else:
					dp[i] = True
			else:
				dp[i] = True
		if dp[0]:
			print('First')
		else:
			print('Second')
	t -= 1


import sys
input = lambda : sys.stdin.readline().rstrip()
for _ in range(int(input())):
	n = int(input())
	a = [int(i) for i in input().split()] + [1]
	ans = ['First', 'Second']
	chn = 0
	for i in a:
		if i == 1:
			chn ^= 1
		else:
			break
	print(ans[chn])


f = 'First'
s = 'Second'
for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	c = 0
	for i in range(n):
		if arr[i] >= 2:
			arr[i] = 2
		else:
			c += 1
	if c == n:
		if n % 2 == 0:
			print(s)
			continue
		else:
			print(f)
			continue
	ans = f
	k = 0
	for i in range(n):
		if arr[i] == 2:
			k = 1
			print(ans)
			break
		elif ans == f:
			ans = s
		else:
			ans = f
	if k == 0:
		print(ans)


def sid():
	f = 1

def fun(ans, m, l):
	for i in range(m):
		if l[i] > 1:
			if i % 2 == 0:
				ans = 1
				break
			else:
				ans = 2
				break
		else:
			ans = i % 2 + 1
	if ans == 1:
		return 'First'
	else:
		return 'Second'
t = int(input())
for i in range(t):
	m = int(input())
	dis = 'sdfasdf'
	sid()
	l = list(map(int, input().split()))
	ans = 1
	print(fun(ans, m, l))


def win(n, stones):
	L = ['First', 'Second']
	if n == 1:
		return L[0]
	res = 0
	for i in range(n - 2, -1, -1):
		if stones[i] == 1:
			res = 1 - res
		else:
			res = 0
	return L[res]
t = int(input())
for i in range(t):
	n = int(input())
	stones = list(map(int, input().split()))
	print(win(n, stones))


t = int(input())
for x in range(t):
	n = input()
	n = int(n)
	A = list(map(int, input().split()))
	c = 0
	for y in range(n - 2, -1, -1):
		if A[y] == 1:
			if c == 0:
				c = 1
			else:
				c = 0
		elif c == 1:
			c = 0
	if c == 0:
		print('First')
	else:
		print('Second')


t = int(input())
ans = []
for _ in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	prev = 'First'
	idx = n - 2
	while idx >= 0:
		if prev == 'Second':
			prev = 'First'
		elif arr[idx] == 1:
			prev = 'Second'
		idx -= 1
	ans.append(prev)
for player in ans:
	print(player)


def solve():
	n = int(input())
	(*a,) = map(int, input().split())
	for i in range(n):
		if a[i] > 1:
			break
		if i == n - 1:
			if a[i] == 1:
				i += 1
	if i < n:
		if i % 2:
			print('Second')
		else:
			print('First')
	elif i % 2:
		print('First')
	else:
		print('Second')
t = int(input())
for _ in range(t):
	solve()


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')


t = int(input())
for _ in range(t):
	num_piles = int(input())
	pile_count = [int(i) for i in input().split()]
	current_first = True
	for count in pile_count:
		if count != 1:
			break
		current_first = not current_first
	if pile_count.count(1) == num_piles:
		current_first = not current_first
	if current_first:
		print('First')
	else:
		print('Second')


T = int(input())
for t in range(T):
	n = int(input())
	A = [int(i) for i in 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')


def solve(piles):
	first_wins = all_ones = True
	for p in piles:
		if p == 1:
			first_wins = not first_wins
		else:
			all_ones = False
			break
	if all_ones and len(piles) % 2 == 0:
		print('Second')
	elif all_ones:
		print('First')
	elif first_wins:
		print('First')
	else:
		print('Second')
t = int(input())
for t in range(t):
	input()
	piles = [int(i) for i in input().split() if i]
	solve(piles)


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')


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	if l[0] != 1:
		print('First')
		continue
	if n == 1:
		print('First')
		continue
	c = 0
	if len(set(l)) == 1:
		if n & 1:
			print('First')
		else:
			print('Second')
		continue
	i = 0
	while i < n and l[i] == 1:
		c += 1
		i += 1
	if not c & 1:
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	w = 1
	i = n - 2
	while i > -1:
		if w and a[i] == 1:
			w ^= 1
		elif w == 0:
			w ^= 1
		i -= 1
	print(['Second', 'First'][w])


import os
import re
import sys
from bisect import bisect, bisect_left, insort, insort_left
from collections import Counter, defaultdict, deque
from copy import deepcopy
from decimal import Decimal
from fractions import gcd
from io import BytesIO, IOBase
from itertools import accumulate, combinations, combinations_with_replacement, groupby, permutations, product
from math import acos, asin, atan, ceil, cos, degrees, factorial, hypot, log2, pi, radians, sin, sqrt, tan
from operator import itemgetter, mul
from string import ascii_lowercase, ascii_uppercase, digits

def inp():
	return int(input())

def inlist():
	return list(map(int, input().split()))

def instr():
	s = input()
	return list(s[:len(s)])

def invr():
	return map(int, input().split())

def main():
	t = inp()
	for _ in range(t):
		n = inp()
		a = inlist()
		suff = [0] * (n + 1)
		for i in range(n - 2, -1, -1):
			if a[i] == 1:
				suff[i] = suff[i + 1] + 1
		player = 1
		for i in range(n - 1):
			if a[i] == 1 or (suff[i + 1] % 2 != 0 and i != n - 1):
				player = not player
		if player == 0:
			print('Second')
		else:
			print('First')
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))

def input():
	return sys.stdin.readline().rstrip('\r\n')
main()


from math import ceil
from sys import stdin, stdout, setrecursionlimit
for _ in range(int(input())):
	n = int(input())
	a = [int(i) for i in input().split()]
	ind = -1
	for i in range(n):
		if a[i] != 1:
			ind = i
			break
	if ind == -1:
		if n % 2 == 1:
			print('First')
		else:
			print('Second')
	elif ind % 2 == 0:
		print('First')
	else:
		print('Second')


def solve(n, a):
	if a.count(1) == n:
		if n % 2 == 0:
			return 'Second'
		else:
			return 'First'
	count = 0
	for i in range(n):
		if a[i] == 1:
			count += 1
		else:
			break
	if count % 2 == 0:
		return 'First'
	else:
		return 'Second'
t = int(input())
for we in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	print(solve(n, a))


t = int(input())
for i in range(t):
	n = int(input())
	b = list(map(int, input().split()))
	j = 0
	f = 0
	while j < n:
		if b[j] != 1:
			f = 1
			if j % 2 == 0:
				print('First')
			else:
				print('Second')
			break
		j += 1
	if f == 0:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')


num_inp = lambda : int(input())
arr_inp = lambda : list(map(int, input().split()))
sp_inp = lambda : map(int, input().split())
str_inp = lambda : input()
for g in [*open(0)][2::2]:
	i = 0
	d = (g + '1 *').split()
	while '1' == d[i]:
		i += 1
	print('FSiercsotn d'[i % 2::2])


t = int(input())
for _ in range(t):
	n = int(input())
	cnt = 0
	lol = [int(n) for n in input().split()]
	for i in lol:
		if i == 1:
			cnt += 1
	if cnt == n:
		if cnt & 1:
			print('First')
			continue
		else:
			print('Second')
			continue
	cnt = 0
	for i in range(len(lol)):
		if lol[i] == 1:
			cnt += 1
		else:
			break
	if cnt & 1:
		print('Second')
	else:
		print('First')


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	x = 1
	count = 0
	for j in range(len(a)):
		if a[j] > 1:
			x += j
			break
	v = a.count(1)
	if v == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif x % 2 == 1:
		print('First')
	else:
		print('Second')


def readints():
	return map(int, input().split())

def main():
	n = int(input())
	a = list(reversed(list(readints())))
	win = True
	for i in range(1, n):
		if a[i] > 1:
			win = True
		else:
			win = not win
	if win:
		print('First')
	else:
		print('Second')
tests = int(input())
for _ in range(tests):
	main()


from sys import stdin
input = stdin.readline
for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	one = 0
	for i in a:
		if i != 1:
			break
		one += 1
	if one == n and n % 2 == 0:
		print('Second')
	elif one == n and n % 2:
		print('First')
	elif one % 2:
		print('Second')
	else:
		print('First')


t = int(input())

def fun(n, a):
	if n == 1:
		print('First')
	elif a[0] != 1:
		print('First')
	else:
		flag = 0
		i = 0
		while i < n and a[i] == 1:
			flag += 1
			i += 1
		if flag == n:
			if n % 2 == 1:
				print('First')
			else:
				print('Second')
		elif flag % 2 == 0:
			print('First')
		else:
			print('Second')
while t:
	t -= 1
	n = int(input())
	a = [int(i) for i in input().split()]
	fun(n, a)


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	w = 0
	while a:
		x = a.pop()
		if x > 1:
			w = 1
		else:
			w = 1 - w
	print('First' if w else 'Second')


t = int(input())
cnt = 0
while cnt < t:
	cnt += 1
	n = int(input())
	a = [int(i) for i in input().split()]
	tmp = 0
	i = 0
	while i < n and a[i] == 1:
		i += 1
	if i == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif i % 2 == 0:
		print('First')
	else:
		print('Second')


import sys
input = sys.stdin.readline
I = lambda : list(map(int, input().split()))
(t,) = I()
for _ in range(t):
	(n,) = I()
	l = I()
	mv = ct = 0
	ix = -1
	p = -1
	for i in range(n):
		if l[i] == 1:
			ix = i
			ct += 1
		elif p == -1:
			p = i
	if ct == n:
		mv = n % 2
	else:
		mv = p % 2 == 0
	if mv:
		print('First')
	else:
		print('Second')


t = int(input())
for i in range(t):
	n = int(input())
	stones = list(map(int, input().split()))
	res = [0] * n
	res[0] = 'First'
	if n >= 2:
		res[1] = 'Second' if stones[0] == 1 else res[0]
	for i in range(2, n):
		if stones[i - 1] == 1:
			res[i] = res[i - 2]
		else:
			res[i] = res[i - 1]
	print(res[-1])


a = int(input())
for _ in range(a):
	i = 0
	x = int(input())
	li = list(map(int, input().split()))
	while i < x and li[i] == 1:
		i += 1
	print('Second' if (i == x) ^ i % 2 else 'First')


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


from sys import stdin, stdout
stdin.readline

def mp():
	return list(map(int, stdin.readline().strip().split()))

def it():
	return int(stdin.readline().strip())
from collections import deque
for _ in range(it()):
	n = it()
	l = mp()
	a = l.count(1)
	if a == n:
		if a & 1:
			print('First')
		else:
			print('Second')
	else:
		flag = 0
		count = 0
		for i in range(n):
			if l[i] == 1 and flag == 0:
				count += 1
			else:
				flag = 1
		if count & 1:
			print('Second')
		else:
			print('First')


t = int(input())
for tc in range(t):
	n = int(input())
	stones = input().strip()
	stones = ' ' + stones + ' '
	stones = stones.replace('1 1 ', '')
	piles = stones.strip().split()
	piles = [x for x in piles if x != '']
	if len(piles) == 0:
		print('Second')
	elif piles[0] == '1' and len(piles) != 1:
		print('Second')
	else:
		print('First')


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


T = int(input())
while T > 0:
	n = int(input())
	arr = list(map(int, input().split()))
	find = False
	who = 0
	for i in range(n):
		if arr[i] != 1:
			find = True
			if i % 2 == 0:
				who = 0
			else:
				who = 1
			break
	if find is True:
		if who == 0:
			print('First')
		else:
			print('Second')
	elif n % 2 == 1:
		print('First')
	else:
		print('Second')
	T -= 1


import sys
import string
import math
from collections import defaultdict
from functools import lru_cache
from collections import Counter
from fractions import Fraction

def mi(s):
	return map(int, s.strip().split())

def lmi(s):
	return list(mi(s))

def tmi(s):
	return tuple(mi(s))

def mf(f, s):
	return map(f, s)

def lmf(f, s):
	return list(mf(f, s))

def js(lst):
	return ' '.join((str(d) for d in lst))

def jsns(lst):
	return ''.join((str(d) for d in lst))

def line():
	return sys.stdin.readline().strip()

def linesp():
	return line().split()

def iline():
	return int(line())

def mat(n):
	matr = []
	for _ in range(n):
		matr.append(linesp())
	return matr

def matns(n):
	mat = []
	for _ in range(n):
		mat.append([c for c in line()])
	return mat

def mati(n):
	mat = []
	for _ in range(n):
		mat.append(lmi(line()))
	return mat

def pmat(mat):
	for row in mat:
		print(js(row))

def solve(arr):
	first = True
	i = 0
	while i < len(arr):
		if i == len(arr) - 1:
			if first:
				print('First')
			else:
				print('Second')
			return
		elif arr[i] == 1:
			first = not first
			i += 1
		else:
			break
	if first:
		print('First')
	else:
		print('Second')

def main():
	t = iline()
	for _ in range(t):
		line()
		solve(lmi(line()))
main()


from sys import stdin, stdout

def input():
	return stdin.readline().strip()
first = 'First'
second = 'Second'

def solve():
	n = int(input())
	a = list(map(int, input().split()))
	ones = 0
	for i in range(n):
		if a[i] != 1:
			break
		ones += 1
	if i % 2 == 1:
		winner = second
	else:
		winner = first
	print(winner)
for t in range(int(input())):
	solve()


import sys
from math import *
from collections import *
tt = int(input())
for _ in range(tt):
	n = int(input())
	l = list(map(int, input().split()))
	if n == 1:
		print('First')
		continue
	if l.count(1) == n:
		if n % 2:
			print('First')
		else:
			print('Second')
		continue
	starting = 0
	for e in l:
		if e == 1:
			starting += 1
		else:
			break
	if starting % 2:
		print('Second')
	else:
		print('First')


import os
import sys
from io import BytesIO, IOBase
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')

def main():
	for t in range(int(input())):
		n = int(input())
		l = [int(j) for j in input().split()]
		ans = [1] * (n + 1)
		for i in range(n - 1, -1, -1):
			if l[i] > 1:
				ans[i] = 0
			elif l[i] == 1:
				ans[i] = 1 - ans[i + 1]
		if ans[0] == 0:
			print('First')
		else:
			print('Second')
main()


from sys import stdin, stdout
import math
t = int(stdin.readline())
for _ in range(t):
	n = int(stdin.readline())
	a = list(map(int, stdin.readline().split()))
	if n == 1:
		print('First')
		continue
	i = 0
	while i < n:
		if a[i] != 1:
			break
		i += 1
	if i == n:
		if i % 2 == 0:
			print('Second')
		else:
			print('First')
	elif i % 2 == 0:
		print('First')
	else:
		print('Second')


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


t = int(input())
for i in range(t):
	n = int(input())
	lst = list(map(int, input().split()))
	s = 'First'
	if lst.count(1) == n:
		if n % 2 == 0:
			s = 'Second'
		else:
			s = 'First'
	else:
		j = 0
		count = 0
		while lst[j] == 1:
			count += 1
			j += 1
		if count % 2 == 0:
			s = 'First'
		else:
			s = 'Second'
	print(s)


import os
import heapq
import sys
import math
import operator
from collections import defaultdict
from io import BytesIO, IOBase

def inpt():
	return [int(k) for k in input().split()]

def main():
	for _ in range(int(input())):
		n = int(input())
		ar = inpt()
		pos = -1
		for i in range(n):
			if ar[i] != 1:
				pos = i
				break
		if pos == -1:
			if n % 2 == 1:
				print('First')
			else:
				print('Second')
		elif pos % 2 == 0:
			print('First')
		else:
			print('Second')
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')
main()


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


for TEST in range(int(input())):
	n = int(input())
	stone = list(map(int, input().split()))
	if stone.count(1) == n:
		print('First' if n % 2 == 1 else 'Second')
		continue
	for i in range(n):
		if stone[i] != 1:
			break
	print('First' if i % 2 == 0 else 'Second')


def f(s):
	count = 0
	for item in s:
		if item == '1':
			count += 1
		else:
			if count % 2 == 0:
				return 'First'
			return 'Second'
	if count % 2 == 0:
		return 'Second'
	return 'First'
numberoftests = int(input())
for _ in range(numberoftests):
	n = input()
	print(f(input().split()))


def conj(g):
	return 1 if g == 2 else 2
for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	c = 1
	k = 0
	for i in range(n - 1):
		if a[i] == 1:
			c = conj(c)
			i += 1
		elif a[i] > 1:
			print('Second') if c == 2 else print('First')
			k = 1
			break
	if k == 0:
		print('Second') if c == 2 else print('First')


import sys, os, io

def rs():
	return sys.stdin.readline().rstrip()

def ri():
	return int(sys.stdin.readline())

def ria():
	return list(map(int, sys.stdin.readline().split()))

def ws(s):
	sys.stdout.write(s + '\n')

def wi(n):
	sys.stdout.write(str(n) + '\n')

def wia(a):
	sys.stdout.write(' '.join([str(x) for x in a]) + '\n')
for _ in range(ri()):
	n = ri()
	l = ria()
	for i in range(n):
		if l[i] > 1:
			break
	if i % 2:
		ws('Second')
	else:
		ws('First')


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


def check(a, n):
	if a[0] == 1:
		con = 0
		for o in range(0, n - 1):
			if a[o] != 1:
				if con % 2 != 0:
					return 'Second'
				else:
					return 'First'
			else:
				con += 1
		if con % 2 == 0:
			return 'First'
		else:
			return 'Second'
	else:
		return 'First'
t = int(input())
for y in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	print(check(a, n))


t = int(input())
for i in range(t):
	n = int(input())
	A = [int(s) for s in input().split()]
	i = 0
	while i < n and A[i] == 1:
		i += 1
	if i == n:
		if i % 2 != 0:
			print('First')
		else:
			print('Second')
	elif i % 2 == 0:
		print('First')
	else:
		print('Second')


from itertools import count
t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	counter_one = 0
	while counter_one < n and a[counter_one] == 1:
		counter_one += 1
	first_win = False
	if counter_one == n:
		if n % 2 == 1:
			first_win = True
	elif counter_one % 2 == 0:
		first_win = True
	if first_win:
		print('First')
	else:
		print('Second')


t = int(input())
while t > 0:
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1:
		print('First')
	else:
		cnt = a.count(1)
		if cnt == n and n % 2 == 0:
			print('Second')
		elif cnt == n and n % 2 != 0:
			print('First')
		elif cnt == 0:
			print('First')
		else:
			c = 0
			for i in range(n):
				if a[i] == 1:
					c = c + 1
				else:
					break
			if c % 2 == 0:
				print('First')
			else:
				print('Second')
	t = t - 1


t = int(input())
while t > 0:
	t -= 1
	n = int(input())
	a = list(map(int, input().split()))
	i = 0
	while i != n and a[i] == 1:
		i += 1
	if i == n:
		i += 1
	i %= 2
	if i:
		print('Second')
	else:
		print('First')


for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	arr.pop()
	ans = True
	i = 0
	while i != n - 1 and arr[i] == 1:
		ans = not ans
		i += 1
	if ans:
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1:
		print('First')
	else:
		i = 0
		first = True
		while i < n - 1 and a[i] == 1:
			first = not first
			i += 1
		print('First' if first else 'Second')


ntc = int(input())
for case in range(ntc):
	n = int(input())
	a = input()
	a = a.split()
	a = list(map(int, a))
	ans = 1
	for i in range(n):
		if a[i] == 1:
			ans = -ans
		else:
			ans = -ans
			break
	if ans == -1:
		print('First')
	else:
		print('Second')


import math

def gcd(a, b):
	if b == 0:
		return a
	return gcd(b, a % b)

def lcm(a, b):
	return a * b / gcd(a, b)

def bs(arr, l, r, x):
	while l <= r:
		mid = l + (r - l) // 2
		if arr[mid] == x:
			return arr[mid]
		elif arr[mid] < x:
			l = mid + 1
		else:
			r = mid - 1
	return -1

def swap(list, pos1, pos2):
	(list[pos1], list[pos2]) = (list[pos2], list[pos1])
	return list

def subarrayBitwiseOR(A):
	res = set()
	pre = {0}
	for x in A:
		pre = {x | y for y in pre} | {x}
		res |= pre
	return len(res)
t = int(input())
for _ in range(t):
	n = int(input())
	i = 0
	a = list(map(int, input().split()))
	f = 0
	while i < n:
		if a[i] > 1:
			if i % 2 == 0:
				print('First')
			else:
				print('Second')
			f = 1
			break
		i += 1
	if f:
		continue
	if n % 2 != 0:
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	arr = [int(c) for c in input().split()]
	if n == 1:
		print('First')
		continue
	winner = 1
	for i in arr:
		if i == 1:
			if winner == 1:
				winner += 1
			else:
				winner -= 1
		else:
			break
	if arr == [1] * len(arr):
		winner = 1 if len(arr) & 1 else 2
	print('First' if winner == 1 else 'Second')


test = int(input())
result = []
for t in range(test):
	pileN = int(input())
	pile = [int(stone) for stone in input().split()]
	oneTrail = 0
	if 1 not in pile:
		result.append('First')
	else:
		for i in range(pileN):
			if pile[i] == 1:
				oneTrail += 1
			else:
				break
		if oneTrail == pileN:
			if oneTrail % 2 == 0:
				result.append('Second')
			else:
				result.append('First')
		elif oneTrail % 2 == 1:
			result.append('Second')
		else:
			result.append('First')
for r in range(len(result)):
	print(result[r])


for _ in range(int(input())):
	n = int(input())
	s = list(map(int, input().split()))
	if sum(s) == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
		continue
	turn = 1
	for i in range(n):
		if s[i] == 1:
			turn = 1 - turn
		else:
			break
	if turn == 1:
		print('First')
	else:
		print('Second')


import math
from sys import stdin, stdout
for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	f = 0
	f1 = 0
	for i in range(n - 1):
		if l[i] != 1:
			f1 = 1
		if l[i] == 1 and f1 == 0:
			if f == 0:
				f = 1
			else:
				f = 0
	if f == 0:
		print('First')
	else:
		print('Second')


def solve():
	n = int(input())
	arr = [int(v) for v in input().split()]
	idx = 0
	winners = ['First', 'Second']
	for i in range(n - 1):
		if arr[i] == 1:
			idx ^= 1
		else:
			break
	print(winners[idx])
t = int(input())
for _ in range(t):
	solve()


for _ in range(int(input())):
	t = int(input())
	l = [int(x) for x in input().split()]
	for i in range(t):
		if l[i] != 1:
			break
	if i % 2 != 0:
		print('Second')
	else:
		print('First')


t = int(input())
for _ in range(t):
	n = int(input())
	a = [int(s) for s in input().split(' ')]
	winner = 'First'
	idx = 0
	while idx < len(a) and a[idx] == 1:
		winner = 'Second' if winner == 'First' else 'First'
		idx += 1
	if idx == len(a):
		winner = 'Second' if winner == 'First' else 'First'
	print(winner)


import sys
input = sys.stdin.readline
(inp, ip) = (lambda : int(input()), lambda : [int(w) for w in input().split()])
for _ in range(inp()):
	n = inp()
	x = ip()
	c = x.count(1)
	if c == n:
		if n % 2:
			print('First')
		else:
			print('Second')
	else:
		i = 0
		c = 0
		while x[i] == 1:
			c += 1
			i += 1
		if c % 2:
			print('Second')
		else:
			print('First')


t = int(input())
for i in range(t):
	n = int(input())
	lst1 = list(map(int, input().split()))
	for i in range(n):
		if lst1[i] == 1:
			continue
		else:
			break
	if i == n - 1:
		if i % 2 != 0:
			print('Second')
		else:
			print('First')
	elif i % 2 == 0:
		print('First')
	else:
		print('Second')


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


def solution():
	for _ in range(int(input())):
		n = int(input())
		l = list(map(int, input().split()))
		ind = -1
		cnt = 0
		for i in range(n):
			if l[i] == 1:
				cnt += 1
			elif ind == -1:
				ind = i
		ind += 1
		if n == 1:
			if n % 2 == 1:
				print('First')
			else:
				print('Second')
		elif cnt != n:
			if ind % 2 != 0:
				print('First')
			else:
				print('Second')
		elif n % 2 != 0:
			print('First')
		else:
			print('Second')
solution()


for tc in range(int(input())):
	n = int(input())
	A = input().split(' ')
	index = 0
	while index < n and A[index] == '1':
		index += 1
	if index == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif index % 2 == 0:
		print('First')
	else:
		print('Second')


t = int(input())
for i in range(t):
	n = int(input())
	a = list((int(num) for num in input().split()))
	num = 0
	for z in range(0, n):
		if a[z] == 1:
			num += 1
	if n == 1:
		print('First')
	elif num == n:
		if num % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		ans = 0
		for z in range(0, n):
			if a[z] == 1:
				if ans > 0:
					ans = 0
				else:
					ans = 1
			else:
				break
		if ans:
			print('Second')
		else:
			print('First')


import sys
input = sys.stdin.readline
for _ in range(int(input())):
	n = int(input())
	w = input()[:-1].split()
	c = 0
	for i in w:
		if i == '1':
			c += 1
		else:
			break
	if c == n:
		if c % 2:
			print('First')
		else:
			print('Second')
	elif c % 2:
		print('Second')
	else:
		print('First')


def func(a, n):
	if n == 1 or a[0] > 1:
		return 0
	first = 0
	second = 1
	command = 0
	for i in range(n - 1):
		if a[i] == 1:
			command = not command
		else:
			return command
	return command
t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	if func(a, n) == 0:
		print('First')
	else:
		print('Second')


import sys
input = sys.stdin.readline

def ceil(x):
	if x != int(x):
		x = int(x) + 1
	return x

def swaparr(arr, a, b):
	temp = arr[a]
	arr[a] = arr[b]
	arr[b] = temp

def gcd(a, b):
	if b == 0:
		return a
	return gcd(b, a % b)

def nCr(n, k):
	if k > n - k:
		k = n - k
	res = 1
	for i in range(k):
		res = res * (n - i)
		res = res / (i + 1)
	return int(res)

def upper_bound(a, x, lo=0, hi=None):
	if hi == None:
		hi = len(a)
	while lo < hi:
		mid = (lo + hi) // 2
		if a[mid] < x:
			lo = mid + 1
		else:
			hi = mid
	return lo

def primefs(n):
	primes = {}
	while n % 2 == 0 and n > 0:
		primes[2] = primes.get(2, 0) + 1
		n = n // 2
	for i in range(3, int(n ** 0.5) + 2, 2):
		while n % i == 0 and n > 0:
			primes[i] = primes.get(i, 0) + 1
			n = n // i
	if n > 2:
		primes[n] = primes.get(n, 0) + 1
	return primes

def power(x, y, p):
	res = 1
	x = x % p
	if x == 0:
		return 0
	while y > 0:
		if y & 1 == 1:
			res = res * x % p
		y = y >> 1
		x = x * x % p
	return res

def swap(a, b):
	temp = a
	a = b
	b = temp
	return (a, b)

def find(x, link):
	p = x
	while p != link[p]:
		p = link[p]
	while x != p:
		nex = link[x]
		link[x] = p
		x = nex
	return p

def union(x, y, link, size):
	x = find(x, link)
	y = find(y, link)
	if size[x] < size[y]:
		(x, y) = swap(x, y)
	if x != y:
		size[x] += size[y]
		link[y] = x

def sieve(n):
	prime = [True for i in range(n + 1)]
	p = 2
	while p * p <= n:
		if prime[p] == True:
			for i in range(p * p, n + 1, p):
				prime[i] = False
		p += 1
	return prime
MAXN = int(100000.0 + 5)

def spf_sieve():
	spf[1] = 1
	for i in range(2, MAXN):
		spf[i] = i
	for i in range(4, MAXN, 2):
		spf[i] = 2
	for i in range(3, ceil(MAXN ** 0.5), 2):
		if spf[i] == i:
			for j in range(i * i, MAXN, i):
				if spf[j] == j:
					spf[j] = i

def factoriazation(x):
	ret = {}
	while x != 1:
		ret[spf[x]] = ret.get(spf[x], 0) + 1
		x = x // spf[x]
	return ret

def int_array():
	return list(map(int, input().strip().split()))

def str_array():
	return input().strip().split()
MOD = int(1000000000.0) + 7
CMOD = 998244353
INF = float('inf')
NINF = -float('inf')
for _ in range(int(input())):
	n = int(input())
	a = int_array()
	array = [0] * n
	array[n - 1] = 1
	for i in range(n - 1, 0, -1):
		if array[i] == 1:
			if a[i - 1] > 1:
				array[i - 1] = 1
			else:
				array[i - 1] = 0
		else:
			array[i - 1] = 1
	if array[0] == 1:
		print('First')
	else:
		print('Second')


import sys
max_int = 1000000001
min_int = -max_int
winners = ['First', 'Second']
t = int(input())
for _t in range(t):
	n = int(sys.stdin.readline())
	a = list(map(int, sys.stdin.readline().split()))
	winner = 0
	for one in a:
		if one == 1:
			winner = 1 - winner
		else:
			break
	else:
		winner = 1 - winner
	print(winners[winner])


def generate_one_list(a):
	l = []
	n = len(a)
	p = -1
	for i in range(n - 1, -1, -1):
		if a[i] == 1:
			l.append([-1, False])
		else:
			if p == -1:
				l.append([n - i - 1, True])
			else:
				l.append([p - i - 1, False])
			p = i
	return l[::-1]

def main():
	t = int(input())
	for _ in range(t):
		n = int(input())
		a = list(map(int, input().split()))
		turn = 0
		one_list = generate_one_list(a)
		z = 0
		while z < n - 1:
			if a[z] == 1:
				z += 1
			elif a[z + 1] == 1:
				(one_train, r) = one_list[z]
				if r:
					if one_train % 2 != 0:
						a[z] = 1
					else:
						z += 1
				elif one_train % 2 != 0:
					z += 1
				else:
					a[z] = 1
			else:
				a[z] = 1
			turn += 1
		if turn % 2 == 0:
			print('First')
		else:
			print('Second')
main()


for cases in range(int(input())):
	n = int(input())
	p1 = list(map(int, input().split()))
	flag = -1
	for i in range(0, len(p1)):
		if p1[i] != 1:
			flag = i
			break
	if flag == -1:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif flag % 2 == 0:
		print('First')
	else:
		print('Second')


def solve(ans, m, l):
	for i in range(m):
		if l[i] > 1:
			if i % 2 == 0:
				ans = 1
				break
			else:
				ans = 2
				break
		else:
			ans = i % 2 + 1
	if ans == 1:
		return 'First'
	else:
		return 'Second'
t = int(input())
for i in range(t):
	m = int(input())
	l = list(map(int, input().split()))
	ans = 1
	print(solve(ans, m, l))


def sequentialNim(n, array):
	if n == 1:
		return 'First'
	ones = 0
	for x in array:
		if x == 1:
			ones += 1
		else:
			break
	if ones % 2 == 0:
		if n == ones:
			return 'Second'
		else:
			return 'First'
	elif n == ones:
		return 'First'
	else:
		return 'Second'
t = int(input())
final = []
for _ in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	final.append(sequentialNim(n, l))
for _ in range(t):
	print(final[_])


def iseven(a):
	if a % 2 == 0:
		return True
	else:
		return False
t = input()
for index in range(int(t)):
	n = input()
	a = list(map(int, input().split()))
	sum = 0
	for index in range(int(n)):
		if a[index] != 1:
			break
	if iseven(index):
		print('First')
	else:
		print('Second')


import sys
import collections

def input():
	return sys.stdin.readline().rstrip()

def split_input():
	return [int(i) for i in input().split()]
tests = int(input())
for _ in range(tests):
	n = int(input())
	a = split_input()
	ind = 0
	while ind < n and a[ind] == 1:
		ind += 1
	if ind == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif ind % 2 == 0:
		print('First')
	else:
		print('Second')


t = int(input())
if 1 <= t <= 1000:
	for y in range(t):
		n = int(input())
		if 1 <= n <= 10 ** 5:
			a = list(map(int, input().split()))
			if len(a) == n:
				for i in range(len(a)):
					if 1 <= a[i] <= 10 ** 9:
						continue
					else:
						exit()
				if n % 2 == 0:
					for x in range(1, n + 1):
						if x % 2 != 0 and a[x - 1] != 1:
							print('First')
							break
						if x % 2 == 0 and a[x - 1] != 1:
							print('Second')
							break
						if a.count(1) == n:
							print('Second')
							break
				else:
					for z in range(1, n + 1):
						if z % 2 != 0 and a[z - 1] != 1:
							print('First')
							break
						if z % 2 == 0 and a[z - 1] != 1:
							print('Second')
							break
						if a.count(1) == n:
							print('First')
							break
			else:
				exit()
		else:
			exit()
else:
	exit()


t = int(input())
for i in range(0, t):
	n = int(input())
	a = list(map(int, input().split()))
	k = 0
	s = 0
	for j in range(0, n):
		if a[j] == 1:
			k = k + 1
		else:
			break
	if n == k:
		if k % 2 == 0:
			print('Second')
		else:
			print('First')
	elif k == 0:
		print('First')
	elif k % 2 == 1:
		print('Second')
	else:
		print('First')


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	wins = True
	rest = a[:-1]
	for x in rest[::-1]:
		if x >= 2:
			wins = True
		else:
			wins = wins == False
	print(('Second', 'First')[wins])


x = input()
for i in range(int(x)):
	y = int(input())
	a = input().split()
	test = True
	n = 0
	while True:
		if a[n] != '1':
			test = False
		n = n + 1
		if test == False or n == y:
			break
	if test == False:
		print('Second') if n % 2 == 0 else print('First')
	if test == True:
		print('Second') if test == True and n % 2 == 0 else print('First')


number_of_test_cases = int(input())
counter = 0
winner = 0
while number_of_test_cases != counter:
	number_of_piles = int(input())
	number_of_stones = list(map(int, input().split()))
	for i in number_of_stones:
		if max(number_of_stones) == 1:
			if number_of_piles % 2 == 0:
				print('Second')
				counter += 1
				break
			if number_of_piles % 2 == 1:
				print('First')
				counter += 1
				break
		if i == 1:
			winner += 1
			continue
		else:
			if winner % 2 == 0 and winner != number_of_piles:
				print('First')
				winner = 0
				counter += 1
				break
			if winner % 2 == 1 and winner != number_of_piles:
				print('Second')
				winner = 0
				counter += 1
				break


for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	k = 0
	m = set()
	m.add(1)
	if 1 not in arr:
		print('First')
	elif set(arr) == m:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		for i in arr:
			if i == 1:
				k += 1
			if i != 1:
				break
		if k % 2 == 0:
			print('First')
		else:
			print('Second')


def who(z):
	w = 1
	for c in z:
		if c > 1:
			return w
		else:
			w = 3 - w
	return 3 - w
for i in range(int(input())):
	input()
	print('First' if who(list(map(int, input().split()))) == 1 else 'Second')


import math, sys, bisect, heapq
from collections import defaultdict, Counter, deque
from itertools import groupby, accumulate
input = iter(sys.stdin.buffer.read().decode().splitlines()).__next__
ilele = lambda : map(int, input().split())
alele = lambda : list(map(int, input().split()))

def Y(c):
	print(['NO', 'YES'][c])

def y(c):
	print(['no', 'yes'][c])

def Yy(c):
	print(['No', 'Yes'][c])
for _ in range(int(input())):
	N = int(input())
	A = alele()
	if N == 1:
		print('First')
	else:
		f = 0
		F = ['First', 'Second']
		A.pop()
		B = [list(j) for (i, j) in groupby(A)]
		if B[0][0] != 1:
			print(F[0])
		else:
			c = len(B[0]) % 2
			print(F[c])


for _ in range(int(input())):
	n = int(input())
	l = [int(x) for x in input().split()]
	cnt1 = 0
	for i in l:
		if i == 1:
			cnt1 += 1
		else:
			break
	if cnt1 == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif cnt1 % 2 == 0:
		print('First')
	else:
		print('Second')


import os
import sys
from io import BytesIO, IOBase
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')

def RL():
	return map(int, sys.stdin.readline().rstrip().split())

def RLL():
	return list(map(int, sys.stdin.readline().rstrip().split()))

def N():
	return int(input())

def comb(n, m):
	return factorial(n) / (factorial(m) * factorial(n - m)) if n >= m else 0

def perm(n, m):
	return factorial(n) // factorial(n - m) if n >= m else 0

def mdis(x1, y1, x2, y2):
	return abs(x1 - x2) + abs(y1 - y2)
mod = 998244353
INF = float('inf')
from math import factorial
from collections import Counter, defaultdict, deque
from heapq import heapify, heappop, heappush

def main():
	for _ in range(N()):
		n = N()
		arr = RLL()
		rec = [1] * n
		for i in range(n - 2, -1, -1):
			if arr[i] == 1:
				rec[i] = rec[i + 1] ^ 1
		print('First' if rec[0] == 1 else 'Second')
main()


from collections import Counter, defaultdict, deque
import sys
input = sys.stdin.readline

def solve():
	n = int(input())
	arr = [int(x) for x in input().split()]
	w = 0
	for p in arr:
		if p == 1:
			w ^= 1
		else:
			if w:
				print('Second')
			else:
				print('First')
			return
	if w:
		print('First')
	else:
		print('Second')
tt = int(input())
for test in range(tt):
	solve()


def stones(n, a):
	f = 'First'
	s = 'Second'
	win = f
	if a.count(1) == n:
		if a.count(1) % 2 == 0:
			return s
		else:
			return f
	for i in range(len(a)):
		if a[i] == 1:
			if win == f:
				win = s
			else:
				win = f
		else:
			return win
test = int(input())
for i in range(test):
	n = int(input())
	a = list(map(int, input().split()))
	print(stones(n, a))


__MULTITEST = True

def solve():
	n = int(input())
	a = list(map(int, input().split()))
	nim = [1] * n
	for i in range(n - 2, -1, -1):
		if nim[i + 1] == 1:
			if a[i] > 1:
				nim[i] = 1
			else:
				nim[i] = 0
		else:
			nim[i] = 1
	print('First' if nim[0] == 1 else 'Second')
t = int(input()) if __MULTITEST else 1
for tt in range(t):
	solve()


for t in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	turn = 1
	if a[0] == 1 and len(set(a)) == 1:
		if len(a) % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		for i in range(n):
			if a[i] == 1:
				turn *= -1
			else:
				if turn < 0:
					print('Second')
				else:
					print('First')
				break


t = int(input())
for i in range(t):
	n = int(input())
	a = [int(x) for x in input().strip().split()]
	if a.count(1) == 0:
		print('First')
		continue
	turn = 0
	for i in range(n):
		if i % 2:
			turn = 2
		else:
			turn = 1
		if a[i] != 1:
			break
	if turn == 1:
		print('First')
	else:
		print('Second')


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


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


t = int(input())
for _ in range(t):
	n = int(input())
	a1 = list(map(int, input().split()))
	k = a1.count(1)
	if k == n and n % 2 == 0:
		print('Second')
	elif k == n and n % 2 != 0:
		print('First')
	elif k == 0:
		print('First')
	elif k < n:
		for i in range(n):
			if a1[i] != 1:
				if i % 2 == 0:
					print('First')
				else:
					print('Second')
				break


t = int(input())
for _ in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	player = 0
	for i in range(n):
		if arr[i] != 1:
			break
		if arr[i] == 1 and i != n - 1:
			player = 1 - player
	res = 'Second' if player else 'First'
	print(res)


def solve(m, lst):
	for i in range(m):
		if lst[i] != 1:
			break
	if i % 2 == 0:
		return 'First'
	return 'Second'
for _ in range(int(input())):
	n = int(input())
	a = [int(y) for y in input().split()]
	print(solve(n, a))


import time, math as mt, bisect, sys
from sys import stdin, stdout
from collections import deque
from fractions import Fraction
from collections import Counter
from collections import OrderedDict
pi = 3.141592653589793

def II():
	return int(stdin.readline())

def IO():
	return stdin.readline()

def IP():
	return map(int, stdin.readline().split())

def L():
	return list(map(int, stdin.readline().split()))

def P(x):
	return stdout.write(str(x) + '\n')

def PI(x, y):
	return stdout.write(str(x) + ' ' + str(y) + '\n')

def lcm(a, b):
	return a * b // gcd(a, b)

def gcd(a, b):
	if a == 0:
		return b
	elif b == 0:
		return a
	if a > b:
		return gcd(a % b, b)
	else:
		return gcd(a, b % a)

def readTree():
	v = int(input())
	adj = [set() for i in range(v + 1)]
	for i in range(v - 1):
		(u1, u2) = In()
		adj[u1].add(u2)
		adj[u2].add(u1)
	return (adj, v)

def bfs(adj, v):
	visited = [False] * (v + 1)
	q = deque()
	while q:
		pass

def sieve():
	li = [True] * 1000001
	(li[0], li[1]) = (False, False)
	for i in range(2, len(li), 1):
		if li[i] == True:
			for j in range(i * i, len(li), i):
				li[j] = False
	prime = []
	for i in range(1000001):
		if li[i] == True:
			prime.append(i)
	return prime

def setBit(n):
	count = 0
	while n != 0:
		n = n & n - 1
		count += 1
	return count
mx = 10 ** 7
spf = [mx] * (mx + 1)

def SPF():
	spf[1] = 1
	for i in range(2, mx + 1):
		if spf[i] == mx:
			spf[i] = i
			for j in range(i * i, mx + 1, i):
				if i < spf[j]:
					spf[j] = i
	return
mod = 10 ** 9 + 7

def solve():
	n = II()
	li = L()
	start = 'First'
	count = 'Second'
	if n == 1:
		print('First')
		return
	elif n == 2:
		if li[0] == 1:
			print('Second')
			return
		else:
			print('First')
			return
	elif li == [1] * n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		i = 0
		not1 = False
		c1 = 0
		while i < n - 1:
			if li[i] == 1:
				(start, count) = (count, start)
				i += 1
			else:
				break
		print(start)
t = II()
for i in range(t):
	solve()


from sys import *
t = int(stdin.readline())
while t > 0:
	n = int(stdin.readline())
	arr = list(map(int, stdin.readline().split()))
	if arr[0] > 1:
		ans = 'First'
	else:
		count = 0
		for i in range(n):
			if arr[i] == 1:
				count += 1
			else:
				break
		if count == n and count % 2 == 1:
			ans = 'First'
		elif count == n and count % 2 == 0:
			ans = 'Second'
		elif count < n and count % 2 == 1:
			ans = 'Second'
		elif count < n and count % 2 == 0:
			ans = 'First'
	print(ans)
	t -= 1


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


rr = lambda : input()
rri = lambda : int(input())
rrm = lambda : list(map(int, input().split()))
INF = float('inf')
(FIRST, SECOND) = ('First', 'Second')

def solve(N, A):
	dp = [0 for _ in range(N)]
	dp[0] = 0
	larger = -1
	if A[0] > 1:
		larger = 0
	for (i, v) in enumerate(A):
		if i != 0:
			if larger != -1:
				dp[i] = dp[larger]
			else:
				dp[i] = dp[i - 1] ^ 1
			if larger == -1 and A[i] > 1:
				larger = i
	return FIRST if dp[-1] == 0 else SECOND
t = rri()
for _ in range(t):
	N = rri()
	A = rrm()
	print(solve(N, A))


from math import ceil, log, floor, sqrt
import math
k = 1

def mod_expo(n, p, m):
	result = 1
	while p != 0:
		if p % 2 == 1:
			result = result * n % m
		p //= 2
		n = n * n % m
	return result

def is_prime(n):
	m = 2
	while m * m <= n:
		if n % m == 0:
			return False
		m += 1
	return True

def find_sum(n, a):
	a.insert(0, 0)
	for i in range(1, n + 1):
		prev = a[i] & a[i - 1]
		cur = a[i] | a[i - 1]
		a[i - 1] = prev
		a[i] = cur
	return sum((m * m for m in a))

def prin_abc(x, y, z):
	l = [x, y, z]
	l.sort()
	if l[1] < l[2]:
		print('NO')
		return
	a = b = l[0]
	c = l[2]
	print('YES')
	print(a, b, c)

def get_rank(n, stones):
	x = 0
	turn = 0
	winner = False
	for i in range(n - 2, -1, -1):
		if winner:
			winner = not winner
		elif stones[i] == 1 and (not winner):
			winner = True
	if not winner or stones[0] > 1:
		print('First')
	else:
		print('Second')
t = 1
t = int(input())
while t:
	t = t - 1
	points = []
	n = int(input())
	a = list(map(int, input().strip().split()))[:n]
	get_rank(n, a)


t = int(input())
for i in range(t):
	n = int(input())
	stones = list(map(int, input().split()))
	l = 0
	count = 0
	while l < n - 1 and stones[l] == 1:
		count += 1
		l += 1
	if count % 2 == 0:
		print('First')
	else:
		print('Second')


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


def flip(a):
	if a == 0:
		return 1
	else:
		return 0
t = int(input(''))
a = []
for i in range(t):
	input('')
	a.append(list(map(int, input().split())))
for i in range(t):
	x = a[i]
	sol = 1
	for i in range(len(x) - 1):
		if x[i] == 1:
			sol = flip(sol)
		else:
			break
	if sol == 1:
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	a = [int(x) for x in input().split()]
	turn = 1
	i = 0
	while i < n and a[i] == 1:
		i += 1
		turn = 1 if turn == 2 else 2
	if i == n:
		print('First' if turn == 2 else 'Second')
	else:
		print('First' if turn == 1 else 'Second')


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


t = int(input())
ans = []
for i in range(t):
	n = int(input())
	p = input()
	a = list(map(int, p.split()))
	a = list(filter(lambda i: i != 0, a))
	c = 0
	j = 0
	while j < len(a) - 1 and a[j] == 1:
		c += 1
		j += 1
	if c % 2 == 0:
		ans.append('First')
	else:
		ans.append('Second')
for i in ans:
	print(i)


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	win = 1
	for x in a:
		if x == 1:
			win = 3 - win
		else:
			break
	if a.count(1) == n:
		if n % 2 == 0:
			win = 2
		else:
			win = 1
	if win == 1:
		print('First')
	else:
		print('Second')


t = int(input())
while t > 0:
	j = 0
	f = 1
	n = int(input())
	l = input().split()
	noone = l.count('1')
	nocone = 0
	for i in l:
		a = int(i)
		if a == 1:
			if j % 2 == 0:
				f = 1
				nocone += 1
				noone -= 1
			else:
				nocone += 1
				noone -= 1
				f = 2
		else:
			if nocone % 2 == 0 and noone % 2 != 0:
				f = 1
				break
			if nocone % 2 == 0 and noone % 2 == 0:
				f = 1
				break
			if nocone % 2 != 0 and noone % 2 != 0:
				f = 2
				break
			if nocone % 2 != 0 and noone % 2 == 0:
				f = 2
				break
		j += 1
	if f == 1:
		print('First')
	else:
		print('Second')
	t -= 1


t = int(input())
for _ in range(t):
	n = int(input())
	l = [int(x) for x in input().split()]
	flag = False
	d = {True: 'First', False: 'Second'}
	i = 0
	while i < n:
		if l[i] == 1:
			flag = not flag
		else:
			break
		i += 1
	if i == n:
		flag
	else:
		flag = not flag
	print(d[flag])


CASES = int(input())
for case in range(CASES):
	n_piles = int(input())
	piles = [int(x) for x in input().split(' ')]
	n_left = n_piles
	for (turn, p) in enumerate(piles):
		if p > 1:
			print('Second' if turn % 2 != 0 else 'First')
			break
	else:
		print('Second' if turn % 2 != 0 else 'First')


t = int(input())
for i in range(t):
	n = int(input())
	ai = list(map(int, input().split()))
	ai = [ai[i] > 1 for i in range(n)]
	ans = ['First', 'Second']
	try:
		num = ai.index(1)
		print(ans[num % 2])
	except:
		print(ans[(n + 1) % 2])


from os import path
import sys
from heapq import heappush, heappop
from functools import cmp_to_key as ctk
from collections import deque, defaultdict as dd
from bisect import bisect, bisect_left, bisect_right, insort, insort_left, insort_right
from itertools import permutations
from datetime import datetime
from math import ceil, sqrt, log, gcd

def ii():
	return int(input())

def si():
	return input().rstrip()

def mi():
	return map(int, input().split())

def li():
	return list(mi())
abc = 'abcdefghijklmnopqrstuvwxyz'
mod = 1000000007
inf = float('inf')
vow = ['a', 'e', 'i', 'o', 'u']
(dx, dy) = ([-1, 1, 0, 0], [0, 0, 1, -1])

def bo(i):
	return ord(i) - ord('a')
file = 1

def solve():
	for _ in range(ii()):
		n = ii()
		a = li()
		if sum(a) == n:
			if n & 1:
				f = 1
			else:
				f = 2
		else:
			for i in range(n):
				if a[i] > 1:
					if i & 1:
						f = 2
					else:
						f = 1
					break
		print('First' if f == 1 else 'Second')
if file:
	if path.exists('input.txt'):
		sys.stdin = open('input.txt', 'r')
		sys.stdout = open('output.txt', 'w')
	else:
		input = sys.stdin.readline
solve()


import sys, threading
sys.setrecursionlimit(10 ** 8)
threading.stack_size(10 ** 8)

def main():

	def isWon(startPile, isOneLeft):
		if startPile == n:
			return False
		isOneLeft = isOneLeft or piles[startPile] == 1
		key = (startPile, isOneLeft)
		if not key in memo:
			memo[key] = False
			if not isOneLeft:
				memo[key] = not isWon(startPile, True)
			memo[key] = memo[key] or not isWon(startPile + 1, False)
		return memo[key]
	t = int(input())
	for _ in range(t):
		n = int(input())
		piles = list(map(int, input().split()))
		memo = {}
		print('First' if isWon(0, False) else 'Second')
threading.Thread(target=main).start()


a = int(input())
for i in range(a):
	x = int(input())
	ar = list(map(int, input().split()))
	c = 0
	for i in ar:
		if i > 1:
			c = c + 1
			break
		else:
			c = c + 1
	if c == 0:
		print('First')
	elif c % 2 == 0:
		print('Second')
	else:
		print('First')


for i in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	ans = 1
	for j in range(n - 1):
		if a[j] == 1:
			ans = 3 - ans
		else:
			break
	if ans == 1:
		print('First')
	else:
		print('Second')


import sys
import math, bisect
from collections import defaultdict
from itertools import groupby, accumulate
from heapq import heapify, heappop, heappush
from collections import deque, Counter, OrderedDict

def neo():
	return map(int, input().split())

def Neo():
	return list(map(int, input().split()))
for _ in range(int(input())):
	N = int(input())
	A = Neo()
	t = 0
	for i in A[:-1]:
		if i == 1:
			t += 1
		else:
			break
	if t % 2 == 0:
		print('First')
	else:
		print('Second')


t = int(input())
for x in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	c = 0
	uno = a.count(1)
	if n == uno and uno % 2 == 0:
		print('Second')
	elif n == uno:
		print('First')
	else:
		for y in range(n):
			if a[y] != 1:
				if y % 2 == 0:
					print('First')
				else:
					print('Second')
				break


t = int(input())
while t:
	n = int(input())
	l = list(map(int, input().split()))
	k = 0
	for i in range(n):
		if l[i] != 1:
			k = k + i + 1
			break
	if k == 0:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif k % 2 == 0:
		print('Second')
	else:
		print('First')
	t = t - 1


import math
import heapq, bisect
import sys
from collections import deque, defaultdict
from fractions import Fraction
mod = 10 ** 9 + 7
mod1 = 998244353
import os
import sys
from io import BytesIO, IOBase
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')

class TreeNode:

	def __init__(self, k, v):
		self.key = k
		self.value = v
		self.left = None
		self.right = None
		self.parent = None
		self.height = 1
		self.num_left = 1
		self.num_total = 1

class AvlTree:

	def __init__(self):
		self._tree = None

	def add(self, k, v):
		if not self._tree:
			self._tree = TreeNode(k, v)
			return
		node = self._add(k, v)
		if node:
			self._rebalance(node)

	def _add(self, k, v):
		node = self._tree
		while node:
			if k < node.key:
				if node.left:
					node = node.left
				else:
					node.left = TreeNode(k, v)
					node.left.parent = node
					return node.left
			elif node.key < k:
				if node.right:
					node = node.right
				else:
					node.right = TreeNode(k, v)
					node.right.parent = node
					return node.right
			else:
				node.value = v
				return

	@staticmethod
	def get_height(x):
		return x.height if x else 0

	@staticmethod
	def get_num_total(x):
		return x.num_total if x else 0

	def _rebalance(self, node):
		n = node
		while n:
			lh = self.get_height(n.left)
			rh = self.get_height(n.right)
			n.height = max(lh, rh) + 1
			balance_factor = lh - rh
			n.num_total = 1 + self.get_num_total(n.left) + self.get_num_total(n.right)
			n.num_left = 1 + self.get_num_total(n.left)
			if balance_factor > 1:
				if self.get_height(n.left.left) < self.get_height(n.left.right):
					self._rotate_left(n.left)
				self._rotate_right(n)
			elif balance_factor < -1:
				if self.get_height(n.right.right) < self.get_height(n.right.left):
					self._rotate_right(n.right)
				self._rotate_left(n)
			else:
				n = n.parent

	def _remove_one(self, node):
		replacement = node.left or node.right
		if node.parent:
			if AvlTree._is_left(node):
				node.parent.left = replacement
			else:
				node.parent.right = replacement
			replacement.parent = node.parent
			node.parent = None
		else:
			self._tree = replacement
			replacement.parent = None
		node.left = None
		node.right = None
		node.parent = None
		self._rebalance(replacement)

	def _remove_leaf(self, node):
		if node.parent:
			if AvlTree._is_left(node):
				node.parent.left = None
			else:
				node.parent.right = None
			self._rebalance(node.parent)
		else:
			self._tree = None
		node.parent = None
		node.left = None
		node.right = None

	def remove(self, k):
		node = self._get_node(k)
		if not node:
			return
		if AvlTree._is_leaf(node):
			self._remove_leaf(node)
			return
		if node.left and node.right:
			nxt = AvlTree._get_next(node)
			node.key = nxt.key
			node.value = nxt.value
			if self._is_leaf(nxt):
				self._remove_leaf(nxt)
			else:
				self._remove_one(nxt)
			self._rebalance(node)
		else:
			self._remove_one(node)

	def get(self, k):
		node = self._get_node(k)
		return node.value if node else -1

	def _get_node(self, k):
		if not self._tree:
			return None
		node = self._tree
		while node:
			if k < node.key:
				node = node.left
			elif node.key < k:
				node = node.right
			else:
				return node
		return None

	def get_at(self, pos):
		x = pos + 1
		node = self._tree
		while node:
			if x < node.num_left:
				node = node.left
			elif node.num_left < x:
				x -= node.num_left
				node = node.right
			else:
				return (node.key, node.value)
		raise IndexError('Out of ranges')

	@staticmethod
	def _is_left(node):
		return node.parent.left and node.parent.left == node

	@staticmethod
	def _is_leaf(node):
		return node.left is None and node.right is None

	def _rotate_right(self, node):
		if not node.parent:
			self._tree = node.left
			node.left.parent = None
		elif AvlTree._is_left(node):
			node.parent.left = node.left
			node.left.parent = node.parent
		else:
			node.parent.right = node.left
			node.left.parent = node.parent
		bk = node.left.right
		node.left.right = node
		node.parent = node.left
		node.left = bk
		if bk:
			bk.parent = node
		node.height = max(self.get_height(node.left), self.get_height(node.right)) + 1
		node.num_total = 1 + self.get_num_total(node.left) + self.get_num_total(node.right)
		node.num_left = 1 + self.get_num_total(node.left)

	def _rotate_left(self, node):
		if not node.parent:
			self._tree = node.right
			node.right.parent = None
		elif AvlTree._is_left(node):
			node.parent.left = node.right
			node.right.parent = node.parent
		else:
			node.parent.right = node.right
			node.right.parent = node.parent
		bk = node.right.left
		node.right.left = node
		node.parent = node.right
		node.right = bk
		if bk:
			bk.parent = node
		node.height = max(self.get_height(node.left), self.get_height(node.right)) + 1
		node.num_total = 1 + self.get_num_total(node.left) + self.get_num_total(node.right)
		node.num_left = 1 + self.get_num_total(node.left)

	@staticmethod
	def _get_next(node):
		if not node.right:
			return node.parent
		n = node.right
		while n.left:
			n = n.left
		return n
avl = AvlTree()

class SegmentTree1:

	def __init__(self, data, default='z', func=lambda a, b: min(a, b)):
		self._default = default
		self._func = func
		self._len = len(data)
		self._size = _size = 1 << (self._len - 1).bit_length()
		self.data = [default] * (2 * _size)
		self.data[_size:_size + self._len] = data
		for i in reversed(range(_size)):
			self.data[i] = func(self.data[i + i], self.data[i + i + 1])

	def __delitem__(self, idx):
		self[idx] = self._default

	def __getitem__(self, idx):
		return self.data[idx + self._size]

	def __setitem__(self, idx, value):
		idx += self._size
		self.data[idx] = value
		idx >>= 1
		while idx:
			self.data[idx] = self._func(self.data[2 * idx], self.data[2 * idx + 1])
			idx >>= 1

	def __len__(self):
		return self._len

	def query(self, start, stop):
		if start == stop:
			return self.__getitem__(start)
		stop += 1
		start += self._size
		stop += self._size
		res = self._default
		while start < stop:
			if start & 1:
				res = self._func(res, self.data[start])
				start += 1
			if stop & 1:
				stop -= 1
				res = self._func(res, self.data[stop])
			start >>= 1
			stop >>= 1
		return res

	def __repr__(self):
		return 'SegmentTree({0})'.format(self.data)

class SegmentTree:

	def __init__(self, data, default=0, func=lambda a, b: a + b):
		self._default = default
		self._func = func
		self._len = len(data)
		self._size = _size = 1 << (self._len - 1).bit_length()
		self.data = [default] * (2 * _size)
		self.data[_size:_size + self._len] = data
		for i in reversed(range(_size)):
			self.data[i] = func(self.data[i + i], self.data[i + i + 1])

	def __delitem__(self, idx):
		self[idx] = self._default

	def __getitem__(self, idx):
		return self.data[idx + self._size]

	def __setitem__(self, idx, value):
		idx += self._size
		self.data[idx] = value
		idx >>= 1
		while idx:
			self.data[idx] = self._func(self.data[2 * idx], self.data[2 * idx + 1])
			idx >>= 1

	def __len__(self):
		return self._len

	def query(self, start, stop):
		if start == stop:
			return self.__getitem__(start)
		stop += 1
		start += self._size
		stop += self._size
		res = self._default
		while start < stop:
			if start & 1:
				res = self._func(res, self.data[start])
				start += 1
			if stop & 1:
				stop -= 1
				res = self._func(res, self.data[stop])
			start >>= 1
			stop >>= 1
		return res

	def __repr__(self):
		return 'SegmentTree({0})'.format(self.data)

class Factorial:

	def __init__(self, MOD):
		self.MOD = MOD
		self.factorials = [1, 1]
		self.invModulos = [0, 1]
		self.invFactorial_ = [1, 1]

	def calc(self, n):
		if n <= -1:
			print('Invalid argument to calculate n!')
			print('n must be non-negative value. But the argument was ' + str(n))
			exit()
		if n < len(self.factorials):
			return self.factorials[n]
		nextArr = [0] * (n + 1 - len(self.factorials))
		initialI = len(self.factorials)
		prev = self.factorials[-1]
		m = self.MOD
		for i in range(initialI, n + 1):
			prev = nextArr[i - initialI] = prev * i % m
		self.factorials += nextArr
		return self.factorials[n]

	def inv(self, n):
		if n <= -1:
			print('Invalid argument to calculate n^(-1)')
			print('n must be non-negative value. But the argument was ' + str(n))
			exit()
		p = self.MOD
		pi = n % p
		if pi < len(self.invModulos):
			return self.invModulos[pi]
		nextArr = [0] * (n + 1 - len(self.invModulos))
		initialI = len(self.invModulos)
		for i in range(initialI, min(p, n + 1)):
			next = -self.invModulos[p % i] * (p // i) % p
			self.invModulos.append(next)
		return self.invModulos[pi]

	def invFactorial(self, n):
		if n <= -1:
			print('Invalid argument to calculate (n^(-1))!')
			print('n must be non-negative value. But the argument was ' + str(n))
			exit()
		if n < len(self.invFactorial_):
			return self.invFactorial_[n]
		self.inv(n)
		nextArr = [0] * (n + 1 - len(self.invFactorial_))
		initialI = len(self.invFactorial_)
		prev = self.invFactorial_[-1]
		p = self.MOD
		for i in range(initialI, n + 1):
			prev = nextArr[i - initialI] = prev * self.invModulos[i % p] % p
		self.invFactorial_ += nextArr
		return self.invFactorial_[n]

class Combination:

	def __init__(self, MOD):
		self.MOD = MOD
		self.factorial = Factorial(MOD)

	def ncr(self, n, k):
		if k < 0 or n < k:
			return 0
		k = min(k, n - k)
		f = self.factorial
		return f.calc(n) * f.invFactorial(max(n - k, k)) * f.invFactorial(min(k, n - k)) % self.MOD

def powm(a, n, m):
	if a == 1 or n == 0:
		return 1
	if n % 2 == 0:
		s = powm(a, n // 2, m)
		return s * s % m
	else:
		return a * powm(a, n - 1, m) % m

def sort_list(list1, list2):
	zipped_pairs = zip(list2, list1)
	z = [x for (_, x) in sorted(zipped_pairs)]
	return z

def product(l):
	por = 1
	for i in range(len(l)):
		por *= l[i]
	return por

def binarySearchCount(arr, n, key):
	left = 0
	right = n - 1
	count = 0
	while left <= right:
		mid = int((right + left) / 2)
		if arr[mid] <= key:
			count = mid + 1
			left = mid + 1
		else:
			right = mid - 1
	return count

def countdig(n):
	c = 0
	while n > 0:
		n //= 10
		c += 1
	return c

def countGreater(arr, n, k):
	l = 0
	r = n - 1
	leftGreater = n
	while l <= r:
		m = int(l + (r - l) / 2)
		if arr[m] >= k:
			leftGreater = m
			r = m - 1
		else:
			l = m + 1
	return n - leftGreater
for ik in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	if sum(l) == n:
		if n % 2 == 1:
			print('First')
		else:
			print('Second')
	else:
		f = 0
		for i in range(n):
			if l[i] != 1:
				if i % 2 == 1:
					f = 1
				break
		if f == 0:
			print('First')
		else:
			print('Second')


import sys
import math
import bisect
from sys import stdin, stdout
from math import gcd, floor, sqrt, log
from collections import defaultdict
from bisect import bisect_left as bl, bisect_right as br
from collections import Counter
ip = lambda : int(stdin.readline())
inp = lambda : map(int, stdin.readline().split())
t = ip()
for _ in range(t):
	k = 0
	n = ip()
	arr = list(inp())
	flag = False
	for i in range(n):
		if arr[i] == 1:
			k ^= 1
		else:
			flag = True
			break
	if flag:
		if k == 0:
			print('First')
		else:
			print('Second')
	elif k == 0:
		print('Second')
	else:
		print('First')


for _ in range(int(input())):
	N = int(input())
	A = list(map(int, input().split()))
	if N == 1:
		print('First')
	else:
		count1 = 0
		countb = 0
		for i in range(N):
			if A[i] == 1:
				count1 += 1
			else:
				countb += 1
		if count1 == 0:
			print('First')
		elif countb == 0:
			if count1 % 2 == 0:
				print('Second')
			else:
				print('First')
		else:
			consec = 0
			for i in range(N):
				if A[i] == 1:
					consec += 1
				else:
					break
			if consec % 2 == 0:
				print('First')
			else:
				print('Second')


t = int(input())
for tt in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	c = 0
	if n == 1:
		print('First')
	else:
		for i in range(len(a) - 1):
			if a[i] == 1:
				c = c + 1
			elif a[i] > 1 and a[i + 1] > 1:
				c = c + 2
			elif a[i] > 1 and a[i + 1] == 1:
				break
		if c % 2 == 0:
			print('First')
		else:
			print('Second')


for _ in range(eval(input())):
	extra = input()
	piles = list(map(int, input().split()))
	for pileIndex in range(len(piles)):
		if piles[pileIndex] != 1:
			break
	if pileIndex % 2 == 0:
		print('First')
	else:
		print('Second')


t = int(input())
for _ in range(t):
	n = int(input())
	a = []
	flag = 0
	p = 1
	for i in input().split():
		j = int(i)
		if j == 1 and flag == 0:
			if p == 1:
				p = 2
			else:
				p = 1
		else:
			flag = 1
			if j != 1:
				a.append(j)
	if p == 1:
		if len(a) == 0:
			print('Second')
		else:
			print('First')
	elif len(a) == 0:
		print('First')
	else:
		print('Second')


def winners():
	cases = int(input())
	for i in range(cases):
		pile_cnt = int(input())
		piles = list(map(int, input().split()))
		counter = 0
		SKIPPY = True
		if piles.count(1) == len(piles):
			if len(piles) % 2 == 0:
				print('Second')
			else:
				print('First')
			continue
		while SKIPPY:
			if piles[counter] == 1:
				counter += 1
			else:
				SKIPPY = False
		if counter % 2 == 0:
			print('First')
		else:
			print('Second')
winners()


def wt(l):
	if l == [1 for i in range(len(l))]:
		if len(l) % 2 == 0:
			return 'Second'
		else:
			return 'First'
	for i in range(len(l)):
		if l[i] != 1:
			if i % 2 == 0:
				return 'First'
			else:
				return 'Second'

def rz(l):
	l1 = []
	for i in l:
		if i != 0:
			l1 += [i]
	return l1
ans = []
n = int(input())
for i in range(n):
	z = int(input())
	l = list(map(int, input().split()))
	l = rz(l)
	ans += [wt(l)]
for i in ans:
	print(i)


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


from sys import stdin, stdout
from collections import Counter
from math import ceil
from bisect import bisect_left
from bisect import bisect_right
import math

def ai():
	return list(map(int, stdin.readline().split()))

def ei():
	return map(int, stdin.readline().split())

def ip():
	return int(stdin.readline().strip())

def op(ans):
	return stdout.write(str(ans) + '\n')
for i in range(ip()):
	n = ip()
	piles = ai()
	w = i = 0
	while i < n - 1 and piles[i] == 1:
		w = ~w
		i += 1
	if w:
		print('Second')
	else:
		print('First')


def go(a):
	count = 0
	for i in a:
		if i == 1:
			count += 1
		else:
			return count
t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split(' ')))
	b = a.count(1)
	if b == n:
		if b % 2 == 1:
			print('First')
		else:
			print('Second')
	else:
		count = go(a)
		if count % 2 == 1:
			print('Second')
		else:
			print('First')


def main():
	for _ in range(int(input())):
		n = int(input())
		a = [int(x) for x in input().split()]
		f = 1
		for i in range(n):
			if a[i] > 1:
				break
			elif a[i] == 1 and i != n - 1:
				if f == 1:
					f = 2
				else:
					f = 1
		if f == 1:
			print('First')
		else:
			print('Second')
main()


t = int(input())
for _ in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	turn = i = 0
	while i < n and arr[i] == 1:
		i += 1
		turn += 1
	if turn == n:
		ans = 'First' if turn & 1 else 'Second'
		print(ans)
	elif turn & 1:
		print('Second')
	else:
		print('First')


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1:
		print('First')
	else:
		start = 1
		for i in range(n):
			if a[i] > 1:
				break
			elif a[i] == 1 and i < n - 1:
				start = 1 - start
		if start:
			print('First')
		else:
			print('Second')


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


import itertools

def countint(s):
	return [(k, len(list(g))) for (k, g) in itertools.groupby(s)]
q = int(input())
import collections

def do():
	n = int(input())
	dat = list(map(int, input().split()))
	buf = countint(dat)
	turn1 = True
	(num, cnt) = buf[0]
	if len(buf) == 1:
		if num == 1 and cnt & 1 == 0:
			print('Second')
		else:
			print('First')
	elif num == 1 and cnt & 1 == 1:
		print('Second')
	else:
		print('First')
for _ in range(q):
	do()


import sys, collections
tc = int(sys.stdin.readline())
for _ in range(tc):
	n = int(sys.stdin.readline())
	arr = list(map(int, sys.stdin.readline().split()))
	k = 0
	while k < n and arr[k] == 1:
		k += 1
	if k == n:
		if k % 2 == 1:
			print('First')
		else:
			print('Second')
	elif k % 2 == 0:
		print('First')
	else:
		print('Second')


t = int(input())
while t > 0:
	t = t - 1
	n = int(input())
	a = input()
	A = list(map(int, list(a.split())))
	if min(A) > 1:
		print('First')
	elif min(A) == max(A) == 1:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif A[0] != 1:
		print('First')
	else:
		i = 0
		while i < n:
			if A[i] != 1:
				break
			else:
				i = i + 1
		if i % 2 == 0:
			print('First')
		else:
			print('Second')


from math import inf, ceil, floor
for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	dp = [0] * n
	dp[n - 1] = 1
	for i in range(n - 2, -1, -1):
		if a[i] > 1:
			dp[i] = 1
		elif a[i] == 1 and (not dp[i + 1]):
			dp[i] = 1
	if dp[0]:
		print('First')
	else:
		print('Second')


for s in [*open(0)][2::2]:
	i = 0
	for x in (s + '1').split():
		if '1' < x:
			break
		i += 1
	print('FSiercsotn d'[i % 2::2])


w = int(input())
for o in range(w):
	n = int(input())
	A = list(map(int, input().split(' ')))
	dp = [0] * n
	dp[-1] = 'F'
	for i in range(n - 2, -1, -1):
		if dp[i + 1] == 'F':
			if A[i] == 1:
				dp[i] = 'S'
			else:
				dp[i] = dp[i + 1]
		else:
			dp[i] = 'F'
	if dp[0] == 'F':
		print('First')
	else:
		print('Second')


t = int(input())
for i in range(t):
	n = int(input())
	stones = list(map(int, input().split()))
	beforeone = False
	onecounter = 0
	if stones[0] != 1:
		breforeone = True
		print('First')
	else:
		for j in range(n - 1):
			if stones[j] == 1:
				onecounter += 1
			else:
				break
		if onecounter % 2:
			print('Second')
		else:
			print('First')


import sys
input = lambda : sys.stdin.readline().rstrip('\r\n')
Read = lambda : list(map(int, input().split()))
Num = lambda : int(input())
exec("try:sys.stdin=open('in.txt','r');sys.stdout=open('out.txt','w')\nexcept:pass")

def solve():
	n = Read()[0]
	a = Read()
	if set(a) == {1}:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		oneplus = 0
		for i in a:
			if i > 1:
				oneplus += 1
		if oneplus == n:
			print('First')
			return
		else:
			c = 0
			for i in range(n):
				if a[i] == 1:
					c += 1
				else:
					break
			if c & 1:
				print('Second')
			else:
				print('First')
for _ in range(Num()):
	solve()


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


for _ in range(int(input())):
	n = int(input())
	list1 = list(map(int, input().split()))
	cnt = 0
	ans = 0
	flag = 0
	for i in range(len(list1)):
		if list1[i] == 1:
			cnt += 1
		else:
			flag = 1
			break
	if cnt % 2 == 0 and flag == 1:
		print('First')
	elif cnt % 2 != 0 and flag == 0:
		print('First')
	else:
		print('Second')


def solve():
	x = int(input())
	s = list(map(int, input().split()))
	cur = 0
	if s.count(1) == x:
		v = s.count(1)
		if v % 2 == 0:
			print('Second')
		else:
			print('First')
		return
	for n in s:
		if n == 1:
			cur = int(not cur)
		else:
			if cur:
				print('Second')
			else:
				print('First')
			return
for _ in range(int(input())):
	solve()


from sys import stdin, stdout
import math
input = stdin.readline

def print(x='', y='', end='\n'):
	if y == '':
		stdout.write(str(x) + end)
	else:
		stdout.write(str(x) + ' ' + str(y) + end)

def solve():
	n = int(input())
	l = list(map(int, input().split()))
	c1 = l.count(1)
	if n == 1:
		print('First')
		return
	if c1 == n:
		if n % 2:
			print('First')
		else:
			print('Second')
		return
	for i in range(n):
		if l[i] != 1:
			if i % 2:
				print('Second')
			else:
				print('First')
			return
tt = 1
tt = int(input())
for __ in range(tt):
	solve()


from sys import stdin, stdout
from math import gcd, ceil, sqrt
from collections import Counter
from bisect import bisect_left, bisect_right
ii1 = lambda : int(stdin.readline().strip())
is1 = lambda : stdin.readline().strip()
iia = lambda : list(map(int, stdin.readline().strip().split()))
isa = lambda : stdin.readline().strip().split()
mod = 1000000007
tc = ii1()
for _ in range(tc):
	n = ii1()
	arr = iia()
	cur = 1
	for i in range(len(arr) - 1):
		if arr[i] > 1:
			break
		cur = 1 if cur == 2 else 2
	if cur == 1:
		print('First')
	else:
		print('Second')


import os
import sys
from io import BytesIO, IOBase
import threading
from bisect import bisect_right
from math import gcd, log
from collections import Counter

def main():
	n = int(input())
	arr = list(map(int, input().split()))
	b = 1
	for i in range(n - 2, -1, -1):
		if arr[i] > 1:
			b = 1
		else:
			b = 1 - b
	if b:
		print('First')
	else:
		print('Second')
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')
for _ in range(int(input())):
	main()


import sys
from collections import deque, defaultdict
from math import sqrt, factorial, gcd, ceil, atan, pi

def input():
	return sys.stdin.readline()[:-1]
import string
from bisect import bisect_left
MOD = int(1000000000.0) + 7
INF = float('inf')

def solve():
	n = int(input())
	a = [int(x) for x in input().split()]
	s = a[0]
	a.reverse()
	f = 0
	for i in range(1, n - 1):
		if a[i] == 1:
			f ^= 1
		elif f == 1:
			f ^= 1
	if n == 1:
		print('First')
		return
	if f == 0 and s == 1:
		print('Second')
	else:
		print('First')
t = 1
t = int(input())
for case in range(1, t + 1):
	ans = solve()


def solve(arr):
	for i in range(len(arr)):
		if arr[i] != 1:
			break
	if i % 2 == 0:
		return 'First'
	return 'Second'
for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	print(solve(arr))


def solve():
	n = int(input())
	a = list(map(int, input().split()))
	i = 0
	while i < n:
		if a[i] > 1:
			break
		i += 1
	if i % 2 == 0 and i != n or (i == n and n % 2 == 1):
		print('First')
	else:
		print('Second')
t = int(input())
for _ in range(t):
	solve()


for testcases in range(int(input())):
	le = int(input())
	lis = list(map(int, input().split()))
	flag = 0
	for i in range(len(lis)):
		if lis[i] == 1:
			flag = flag + 1
		elif lis[i] == 0:
			continue
		else:
			flag = flag + 1
			break
	if flag % 2 == 1:
		print('First')
	else:
		print('Second')


from __future__ import division, print_function
import sys
from atexit import register
if sys.version_info[0] < 3:
	from io import BytesIO as stream
else:
	from io import StringIO as stream
sys.stdin = stream(sys.stdin.read())
input = lambda : sys.stdin.readline().rstrip('\r\n')
sys.stdout = stream()
register(lambda : sys.__stdout__.write(sys.stdout.getvalue()))

def read_int():
	return int(input())

def read_ints():
	return list(map(int, input().split(' ')))

def solve():
	n = read_int()
	A = read_ints()
	dp = [True]
	for i in range(1, n):
		if i > 1:
			dp.append(A[i - 1] > 1 and dp[i - 1] or (A[i - 1] == 1 and dp[i - 2]))
		else:
			dp.append(A[i - 1] > 1 and dp[i - 1])
	if dp[-1]:
		return 'First'
	return 'Second'
T = read_int()
for _ in range(T):
	print(solve())


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')


t = int(input())
for i in range(t):
	n = int(input())
	pilhas = list(map(int, input().split()))
	if n == 1:
		print('First')
	else:
		flag = False
		vantagem = 1
		for a in range(n):
			if pilhas[a] == 1:
				if a < n - 1 and flag == False:
					vantagem *= -1
			else:
				flag = True
		if vantagem == 1:
			print('First')
		else:
			print('Second')


t = int(input())
for i in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	f = True
	for i in range(n - 1):
		if l[i] == 1:
			if f == True:
				f = False
			else:
				f = True
		else:
			break
	if f == True:
		print('First')
	else:
		print('Second')


t = int(input())
for _ in range(t):
	n = int(input())
	li = list(map(int, input().split()))
	res = 'Unknown'
	for i in range(n):
		if li[i] > 1 and i % 2 == 0:
			res = 'First'
			break
		elif li[i] > 1 and i % 2 == 1:
			res = 'Second'
			break
	if res == 'Unknown':
		if n % 2 == 0:
			res = 'Second'
		else:
			res = 'First'
	print(res)


t = int(input())
for _ in range(t):
	n = int(input())
	c = 0
	f = False
	for x in input().strip().split():
		if x == '1':
			c += 1
		else:
			f = True
			break
	if f:
		if c % 2 == 1:
			print('Second')
		else:
			print('First')
	elif c % 2 == 1:
		print('First')
	else:
		print('Second')


from collections import deque
from collections import Counter
from itertools import permutations
import heapq

def counterExample():
	arr = [1, 3, 4, 1, 2, 1, 1, 3, 4, 3, 5, 1, 2, 5, 3, 4, 5]
	counter = Counter(arr)
	top_three = counter.most_common(3)
	print(top_three)
q = deque()
import math

def main():
	n = int(input())
	while n >= 1:
		n -= 1
		nr = int(input())
		l = [int(i) for i in input().split()]
		first = 1
		ok = 0
		for i in l:
			if i == 1:
				first = first ^ 1
			if i != 1:
				ok = 1
				if first == 1:
					print('First')
				else:
					print('Second')
				break
		if ok == 0:
			if first == 0:
				print('First')
			else:
				print('Second')
main()


t = int(input())
for _ in range(t):
	n = int(input())
	a = [int(x) for x in input().split()]
	index = 0
	while index < n and a[index] == 1:
		index += 1
	if index == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif index % 2 == 0:
		print('First')
	else:
		print('Second')


from sys import stdin
for _ in range(int(input())):
	n = int(stdin.readline().rstrip())
	l = list(map(int, stdin.readline().rstrip().split(' ')))
	c = 0
	al = False
	for i in range(n):
		if l[i] == 1:
			if i == n - 1:
				al = True
			c += 1
		else:
			break
	if c == 0:
		print('First')
	elif c % 2 == 0:
		if al:
			print('Second')
		else:
			print('First')
	elif al:
		print('First')
	else:
		print('Second')


from collections import defaultdict
import sys, math
f = None
try:
	f = open('q1.input', 'r')
except IOError:
	f = sys.stdin
if 'xrange' in dir(__builtins__):
	range = xrange

def print_case_iterable(case_num, iterable):
	print('Case #{}: {}'.format(case_num, ' '.join(map(str, iterable))))

def print_case_number(case_num, iterable):
	print('Case #{}: {}'.format(case_num, iterable))

def print_iterable(A):
	print(' '.join(A))

def read_int():
	return int(f.readline().strip())

def read_int_array():
	return [int(x) for x in f.readline().strip().split(' ')]

def rns():
	a = [x for x in f.readline().split(' ')]
	return (int(a[0]), a[1].strip())

def read_string():
	return list(f.readline().strip())

def ri():
	return int(f.readline().strip())

def ria():
	return [int(x) for x in f.readline().strip().split(' ')]

def rns():
	a = [x for x in f.readline().split(' ')]
	return (int(a[0]), a[1].strip())

def rs():
	return list(f.readline().strip())

def bi(x):
	return bin(x)[2:]
from collections import deque
import math
NUMBER = 10 ** 9 + 7

def factorial(n):
	M = NUMBER
	f = 1
	for i in range(1, n + 1):
		f = f * i % M
	return f

def mult(a, b):
	return a * b % NUMBER

def minus(a, b):
	return (a - b) % NUMBER

def plus(a, b):
	return (a + b) % NUMBER

def egcd(a, b):
	if a == 0:
		return (b, 0, 1)
	else:
		(g, y, x) = egcd(b % a, a)
		return (g, x - b // a * y, y)

def modinv(a):
	m = NUMBER
	(g, x, y) = egcd(a, m)
	if g != 1:
		raise Exception('modular inverse does not exist')
	else:
		return x % m

def choose(n, k):
	if n < k:
		assert false
	return mult(factorial(n), modinv(mult(factorial(k), factorial(n - k)))) % NUMBER
from collections import deque, defaultdict
import heapq
from types import GeneratorType

def bootstrap(f, stack=[]):

	def wrappedfunc(*args, **kwargs):
		if stack:
			return f(*args, **kwargs)
		else:
			to = f(*args, **kwargs)
			while True:
				if type(to) is GeneratorType:
					stack.append(to)
					to = next(to)
				else:
					stack.pop()
					if not stack:
						break
					to = stack[-1].send(to)
			return to
	return wrappedfunc

def dfs(g, timeIn, timeOut, depths, parents):
	cnt = 0
	stack = [[1, 0, 0, 0]]
	while stack:
		(v, neig_i, parent, depth) = stack[-1]
		parents[v] = parent
		depths[v] = depth
		if neig_i == 0:
			timeIn[v] = cnt
			cnt += 1
		while neig_i < len(g[v]):
			u = g[v][neig_i]
			if u == parent:
				neig_i += 1
				continue
			stack[-1][1] = neig_i + 1
			stack.append([u, 0, v, depth + 1])
			break
		if neig_i == len(g[v]):
			stack.pop()
			timeOut[v] = cnt
			cnt += 1
cnt = 0

@bootstrap
def dfs(v, adj, timeIn, timeOut, depths, parents, parent=0, depth=0):
	global cnt
	parents[v] = parent
	depths[v] = depth
	timeIn[v] = cnt
	cnt += 1
	for u in adj[v]:
		if u == parent:
			continue
		yield dfs(u, adj, timeIn, timeOut, depths, parents, v, depth + 1)
	timeOut[v] = cnt
	cnt += 1
	yield

def gcd(a, b):
	if a == 0:
		return b
	return gcd(b % a, a)

def lcm(a, b):
	return a * b / gcd(a, b)

def get_num_2_5(n):
	twos = 0
	fives = 0
	while n > 0 and n % 2 == 0:
		n //= 2
		twos += 1
	while n > 0 and n % 5 == 0:
		n //= 5
		fives += 1
	return (twos, fives)

def shift(a, i, num):
	for _ in range(num):
		(a[i], a[i + 1], a[i + 2]) = (a[i + 2], a[i], a[i + 1])

def equal(x, y):
	return abs(x - y) <= 1e-09

def getAngle(a, b, c):
	ang = math.degrees(math.atan2(c[1] - b[1], c[0] - b[0]) - math.atan2(a[1] - b[1], a[0] - b[0]))
	return ang + 360 if ang < 0 else ang

def getLength(a, b):
	return math.sqrt((a[0] - b[0]) ** 2 + (a[1] - b[1]) ** 2)
from heapq import heapify, heappush, heappop

def bfs(adj):
	s = set()
	d = defaultdict(set)
	q = deque([])
	s.add(0)
	d[0].add(0)
	q.append((0, 0))
	while len(q) > 0:
		(v, depth) = q.popleft()
		for u in adj[v]:
			if u not in s:
				s.add(u)
				d[depth + 1].add(u)
				q.append((u, depth + 1))
	return d

@bootstrap
def dfs(u, top, adj, vis):
	vis[u] = 1
	for (v, d) in adj[u]:
		if vis[v] == 2 or d == 0:
			continue
		if vis[v] == 1:
			yield 'No'
		x = (yield dfs(v, top, adj, vis))
		if x == 'No':
			yield 'No'
	vis[u] = 2
	top.append(u)
	yield

def solution(n, a):
	dp = [-1] * n + [0]
	for i in range(n - 1, -1, -1):
		x = a[i]
		if dp[i + 1] == 0:
			dp[i] = 1
		elif x == 1:
			dp[i] = 0
		else:
			dp[i] = 1
	return 'First' if dp[0] else 'Second'

def main():
	T = 1
	T = ri()
	for i in range(T):
		n = ri()
		a = ria()
		x = solution(n, a)
		if 'xrange' not in dir(__builtins__):
			print(x)
		else:
			(print >> output, str(x))
	if 'xrange' in dir(__builtins__):
		print(output.getvalue())
		output.close()
if 'xrange' in dir(__builtins__):
	import cStringIO
	output = cStringIO.StringIO()
main()


from collections import defaultdict, Counter
from math import log, ceil, floor

def solve():
	n = int(input())
	a = list(map(int, input().split()))
	c = a.count(1)
	if c == n:
		if n & 1:
			ans = 0
		else:
			ans = 1
	elif c == 0:
		ans = 0
	else:
		c1 = 0
		for i in a:
			if i == 1:
				c1 += 1
			else:
				break
		if c1 & 1:
			ans = 1
		else:
			ans = 0
	if ans == 0:
		print('First')
	else:
		print('Second')
t = 1
t = int(input())
for _ in range(t):
	solve()


t = int(input())
while t > 0:
	n = int(input())
	a = [int(x) for x in input().split()]
	k = 2
	count = 0
	for i in a:
		if i == 1:
			if k == 1:
				k = 2
			else:
				k = 1
		else:
			count = 1
			break
	if count == 1:
		if k == 1:
			print('Second')
		else:
			print('First')
	elif k == 2:
		print('Second')
	else:
		print('First')
	t -= 1


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	(first, sec) = (True, False)
	for i in range(n):
		if i == n - 1:
			continue
		if a[i] == 1:
			if first:
				(first, sec) = (False, True)
				continue
			if sec:
				(first, sec) = (True, False)
				continue
		if a[i] > 1:
			break
	if first:
		print('First')
	else:
		print('Second')


t = int(input())
while t:
	t -= 1
	n = int(input())
	li = [int(i) for i in input().split()]
	index = 0
	count = 0
	while index < n - 1 and li[index] == 1:
		count += 1
		index += 1
	if count % 2 == 0:
		print('First')
	else:
		print('Second')


t = int(input())
while t > 0:
	n = int(input())
	a = list(map(int, input().split(' ')))
	one_count = 0
	for i in a:
		if i == 1:
			one_count += 1
		else:
			break
	if one_count == n:
		if one_count % 2 == 0:
			print('Second')
		else:
			print('First')
	elif one_count % 2 == 0:
		print('First')
	else:
		print('Second')
	t = t - 1


def solve():
	m = int(input())
	arr = [int(x) for x in input().split()]
	count = 0
	winner = False
	for i in range(m - 1):
		if arr[i] == 1:
			winner = not winner
			count += 1
		else:
			break
	if winner == False:
		print('First')
		return
	else:
		print('Second')

def main():
	n = int(input())
	while n > 0:
		solve()
		n -= 1
main()


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


for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	v = -1
	for i in range(n):
		if arr[i] > 1:
			v = i
			break
	if v == -1:
		if n % 2 == 1:
			print('First')
		else:
			print('Second')
	elif v % 2 == 1:
		print('Second')
	else:
		print('First')


t = int(input())
while t > 0:
	t -= 1
	n = int(input())
	x = list(map(int, input().split()))
	cnt = 0
	for i in range(n):
		if x[i] > 1:
			cnt += 1
	if n == 1:
		print('First')
	elif cnt == 0:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif cnt > 0:
		z = 0
		for i in range(n):
			if x[i] > 1:
				z = i
				break
		if z % 2 == 0:
			print('First')
		else:
			print('Second')


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


t = int(input())
for x in range(t):
	n = int(input())
	l1 = [int(x) for x in input().split()]
	i = 0
	while i < len(l1) and l1[i] == 1:
		i += 1
	if i % 2 == 1 and i == n or (i % 2 == 0 and i < n):
		print('First')
	else:
		print('Second')


TC = int(input())
for tc in range(TC):
	N = int(input())
	A = list(map(int, input().split()))
	A.reverse()
	loser = True
	for a in A:
		if a == 1:
			loser = not loser
		elif loser:
			loser = False
	if loser:
		print('Second')
	else:
		print('First')


from itertools import dropwhile
N = int(input())
FS = ['First', 'Second']
for i in range(N):
	p = int(input())
	a = list(map(int, input().split(' ')))
	s = list(dropwhile(lambda x: x == 1, a))
	print(FS[(len(a) - len(s)) % 2] if len(s) > 0 else FS[(len(a) + 1) % 2])


for h in range(int(input())):
	n = int(input())
	arr = list(map(int, input().strip().split()))
	turn = 0
	for i in arr:
		if i > 1:
			if turn == 0:
				print('First')
				break
			else:
				print('Second')
				break
		else:
			turn = 1 ^ turn
	else:
		if turn == 0:
			print('Second')
		else:
			print('First')


J = lambda : int(input())
K = lambda : list(map(int, input().split()))
for _ in range(int(input())):
	n = J()
	A = K()
	count = 0
	for val in A:
		if val == 1:
			count += 1
		else:
			break
	if count == n:
		print(['Second', 'First'][count % 2])
	else:
		print(['First', 'Second'][count % 2])


x = int(input())
for _ in range(x):
	n = int(input())
	a = list()
	l1 = input().split()
	for i in l1:
		a.append(int(i))
	pos = 0
	p = 0
	while pos < n:
		if a[pos] == 0:
			pos = pos + 1
		elif a[pos] == 1:
			a[pos] = a[pos] - 1
			if p == 0:
				p = 1
			elif p == 1:
				p = 2
			else:
				p = 1
		else:
			if p == 0:
				p = 1
			elif p == 1:
				p = 2
			else:
				p = 1
			if p == 1:
				print('First')
				break
			else:
				print('Second')
				break
	if pos == n:
		if p == 2:
			print('Second')
		else:
			print('First')


import io
import os
from collections import Counter, defaultdict, deque
players = ['First', 'Second']

def solve(N, A):
	for (i, x) in enumerate(A):
		if x > 1:
			return players[i % 2]
	return players[(len(A) - 1) % 2]
input = io.BytesIO(os.read(0, os.fstat(0).st_size)).readline
T = int(input())
for t in range(T):
	(N,) = [int(x) for x in input().split()]
	A = [int(x) for x in input().split()]
	ans = solve(N, A)
	print(ans)


import sys
q = int(input())
for i in range(q):
	n = int(sys.stdin.readline())
	a = [int(j) for j in sys.stdin.readline().split()]
	winner = 0
	j = 0
	while j < n and a[j] == 1:
		winner = 1 - winner
		j += 1
	t = n - 1
	if j == n:
		if winner == 0:
			print('Second')
		else:
			print('First')
	elif winner == 1:
		print('Second')
	else:
		print('First')


for i in range(int(input())):
	n = int(input())
	s = list(map(int, input().split()))
	ch = 1
	i = 0
	while i < len(s) - 1:
		if s[i] == 1:
			ch = (ch + 1) % 2
			i += 1
		else:
			i += 1
			while i < len(s) - 1 and s[i] == 1:
				i += 1
	if ch == 1:
		print('First')
	else:
		print('Second')


import sys
input = sys.stdin.readline
t = int(input())
for t1 in range(t):
	n = int(input())
	l = list(map(int, input().split(' ')))
	z = -1
	for i in range(n):
		if l[i] > 1:
			z = i
			break
	if z == -1:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif z % 2 == 0:
		print('First')
	else:
		print('Second')


cases = int(input())
for i in range(cases):
	piles = int(input())
	l2 = input().split(' ')
	arr = []
	for j in l2:
		arr.append(int(j))
	if 1 not in arr:
		print('First')
		continue
	if arr.count(1) == len(arr):
		if arr.count(1) % 2 == 0:
			print('Second')
		else:
			print('First')
		continue
	turns = 0
	for k in range(len(arr)):
		s = arr[k]
		if s == 1:
			turns += 1
		else:
			break
	if turns % 2 == 0:
		print('First')
	else:
		print('Second')


for i in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	s = set(a)
	s = list(s)
	if len(a) == 1:
		print('First')
	elif 1 not in a:
		print('First')
	elif len(s) == 1 and s[0] == 1 and (len(a) % 2 == 0):
		print('Second')
	elif len(s) == 1 and s[0] == 1 and (len(a) % 2 != 0):
		print('First')
	elif a.count(1) == 1 and a.index(1) == 0:
		print('Second')
	else:
		for i in range(n):
			if a[i] > 1:
				co = i + 1
				break
		if co % 2 == 0:
			print('Second')
		else:
			print('First')


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


from sys import stdin, stdout
import math
from collections import Counter, deque
L = lambda : list(map(int, stdin.readline().strip().split()))
M = lambda : map(int, stdin.readline().strip().split())
I = lambda : int(stdin.readline().strip())
IN = lambda : stdin.readline().strip()
C = lambda : stdin.readline().strip().split()
mod = 1000000007

def s(a):
	print(''.join(list(map(str, a))))

def solve():
	n = I()
	a = L()
	c = 0
	for i in range(n):
		if a[i] != 1:
			break
	if i % 2:
		print('Second')
	else:
		print('First')
for _ in range(I()):
	solve()


from collections import defaultdict

def inp():
	return map(int, input().split(' '))

def intinp():
	return int(input())
testcases = 1
testcases = int(input())
for _ in range(testcases):
	n = intinp()
	a = [*inp()]
	for i in range(n):
		if a[i] == 1:
			continue
		else:
			break
	if i % 2:
		print('Second')
	else:
		print('First')


import sys
input = lambda : sys.stdin.readline().rstrip('\n\r')
for _ in range(int(input())):
	n = int(input())
	A = list(map(int, input().split()))
	DP = [[False] * n for _ in range(2)]
	DP[0][-1] = DP[1][-1] = True
	for i in range(n - 2, -1, -1):
		a = A[i]
		if a == 1:
			DP[0][i] = DP[1][i] = not DP[1][i + 1]
		else:
			for full in range(2):
				if full == 0:
					DP[full][i] = not DP[1][i + 1]
				elif not DP[0][i] or not DP[1][i + 1]:
					DP[full][i] = True
	print('First' if DP[1][0] else 'Second')


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


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


import math
import bisect
import copy
import time
from collections import Counter
for _ in range(int(input())):
	n = int(input())
	l = [int(x) for x in input().split()]
	if set(l) == set([1]):
		if len(l) % 2 == 0:
			print('Second')
		else:
			print('First')
		continue
	f = 0
	for i in range(n):
		if l[i] == 1:
			f = f + 1
		elif l[i] != 1:
			break
	if f % 2 == 0:
		f = 0
	else:
		f = 1
	if not f:
		print('First')
	else:
		print('Second')


for t in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	(one, index) = (0, 0)
	while index < n and a[index] == 1:
		index = index + 1
		one = one + 1
	if index == n:
		if n % 2 == 0:
			ans = 2
		else:
			ans = 1
	elif one % 2 == 0:
		ans = 1
	else:
		ans = 2
	if ans == 1:
		print('First')
	else:
		print('Second')


import sys
import math
from functools import reduce
import bisect

def getN():
	return int(input())

def getNM():
	return map(int, input().split())

def getList():
	return list(map(int, input().split()))

def input():
	return sys.stdin.readline().rstrip()

def index(a, x):
	i = bisect.bisect_left(a, x)
	if i != len(a) and a[i] == x:
		return -1
	return i
for _ in range(int(input())):
	n = getN()
	a = getList()
	if a[0] != 1:
		print('First')
	elif a.count(1) == n:
		if a.count(1) & 1:
			print('First')
		else:
			print('Second')
	else:
		k = 0
		for i in range(n):
			if a[i] != 1:
				break
			k += 1
		if k & 1:
			print('Second')
		else:
			print('First')


t = int(input())
while t:
	t -= 1
	n = int(input())
	l = list(map(int, input().split()))
	ans = 'First'
	if n == 1:
		print(ans)
		continue
	win = 1
	curr = 0
	l1 = [1]
	for i in range(n - 2, -1, -1):
		curr = l1[-1] ^ 1
		if l[i] > 1:
			if win == curr:
				l1.append(curr)
				curr = curr ^ 1
			else:
				l1.append(curr)
				l1.append(curr ^ 1)
				curr = curr
		else:
			l1.append(curr)
			curr ^= 1
	if l1[-1] == win:
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	li = list(map(int, input().split()))
	f = 1
	for i in range(n):
		if i == n - 1:
			break
		if li[i] == 1:
			if f == 1:
				f = 2
			elif f == 2:
				f = 1
			continue
		if li[i] > 1:
			break
	if f == 1:
		print('First')
	else:
		print('Second')


t = int(input())
for _ in range(t):
	input()
	ar = map(int, input().split())
	index = 0
	non_zero_items_counter = 0
	multiple_item_found = False
	for a in ar:
		if a != 0:
			non_zero_items_counter += 1
		if a > 1:
			multiple_item_found = True
			break
	if non_zero_items_counter % 2 == 1:
		print('First')
	else:
		print('Second')


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


def all_same(a):
	return all([x == a[0] for x in a])
for _ in range(int(input())):
	N = int(input())
	array = [int(x) for x in input().split()]
	array[-1] = 2
	counter = 0
	while array[counter] == 1:
		counter += 1
	if counter % 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')
	elif i == n:
		print('First')
	else:
		print('Second')
t = int(input())
for i in range(t):
	main(i)


from sys import stdin
inp = lambda : stdin.readline().strip()
t = int(inp())
for _ in range(t):
	n = int(inp())
	a = [int(x) for x in inp().split()]
	flag = -1
	counter = 0
	for i in a:
		if i > 1:
			if counter % 2:
				flag = 2
			else:
				flag = 1
			break
		counter += 1
	if flag == -1:
		if counter % 2:
			print('First')
		else:
			print('Second')
	elif flag == 2:
		print('Second')
	else:
		print('First')


def solution():
	n = int(input())
	a = list(map(int, input().split()))
	ones_cnt = 0
	for ai in a:
		if ai == 1:
			ones_cnt += 1
		else:
			break
	if ones_cnt == n:
		if ones_cnt % 2 == 0:
			print('Second')
		else:
			print('First')
	elif ones_cnt % 2 == 1:
		print('Second')
	else:
		print('First')
t = int(input())
for _ in range(t):
	solution()


def examA():
	T = I()
	for _ in range(T):
		(N, M) = LI()
		A = LI()
		B = LI()
		B = set(B)
		cur = -1
		for a in A:
			if a in B:
				cur = a
				break
		if cur == -1:
			print('NO')
			continue
		print('YES')
		print('1', cur)
	return

def examB():
	T = I()
	ans = []
	for _ in range(T):
		N = I()
		A = LI()
		cur = -1
		for i in range(N):
			if A[i] > 1:
				if i % 2 == 0:
					cur = 1
				else:
					cur = 0
				break
		if cur == -1:
			if N % 2 == 1:
				cur = 1
			else:
				cur = 0
		if cur == 0:
			print('Second')
		else:
			print('First')
	return

def examC():
	T = I()
	ans = []
	for _ in range(T):
		cur = 0
		ans.append(cur)
	for v in ans:
		print(v)
	return

def examD():
	ans = 0
	print(ans)
	return

def examE():
	ans = 0
	print(ans)
	return

def examF():
	ans = 0
	print(ans)
	return
from decimal import getcontext, Decimal as dec
import sys, bisect, heapq
from copy import deepcopy
from heapq import heappop, heappush, heapify
from collections import Counter, defaultdict, deque
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines

def I():
	return int(input())

def LI():
	return list(map(int, sys.stdin.readline().split()))

def DI():
	return dec(input())

def LDI():
	return list(map(dec, sys.stdin.readline().split()))

def LSI():
	return list(map(str, sys.stdin.readline().split()))

def LS():
	return sys.stdin.readline().split()

def SI():
	return sys.stdin.readline().strip()
global mod, mod2, inf, alphabet, _ep
mod = 10 ** 9 + 7
mod2 = 998244353
inf = 10 ** 18
_ep = dec('0.000000000001')
alphabet = [chr(ord('a') + i) for i in range(26)]
alphabet_convert = {chr(ord('a') + i): i for i in range(26)}
getcontext().prec = 28
sys.setrecursionlimit(2 * 10 ** 5)
examB()


tc = int(input())
for _ in range(tc):
	n = int(input())
	a = list(map(int, input().split()))
	winner = 0
	for i in a[:-1]:
		if i == 1:
			winner = 1 - winner
		else:
			break
	print('First' if winner == 0 else 'Second')


from typing import List
t = int(input())

def get_winner(n: int, a: List[int], b: int=0) -> int:
	if n == 1 or a[0] > 1:
		return b
	return get_winner(n - 1, a[1:], (b + 1) % 2)
while t > 0:
	t -= 1
	n = int(input())
	a = list(map(int, input().strip().split(' ')))
	(i, b) = (0, 0)
	d = {0: 'First', 1: 'Second'}
	while i < n - 1:
		if a[i] > 1:
			break
		b = (b + 1) % 2
		i += 1
	print(d[b])


def sol(lis, n):
	k = 0
	while k < n and lis[k] == 1:
		k += 1
	x = (k == n) ^ k % 2
	if x:
		print('Second')
		return
	print('First')
k = int(input())
for i in range(k):
	n = int(input())
	lis = list(map(int, input().split(' ')))
	sol(lis, n)


import os
import sys
import math
import heapq
from decimal import *
from io import BytesIO, IOBase
from collections import defaultdict, deque

def r():
	return int(input())

def rm():
	return map(int, input().split())

def rl():
	return list(map(int, input().split()))
for _ in range(r()):
	n = r()
	a = rl()
	turn = True
	if n == 1:
		print('First')
		continue
	for (j, i) in enumerate(a):
		if j == n - 1:
			continue
		if i == 1:
			turn = not turn
		else:
			break
	if turn:
		print('First')
	else:
		print('Second')


n = int(input())
for i in range(n):
	b = int(input())
	c = input()
	l = c.split()
	l = list(map(int, l))
	cur = 1
	flag = False
	for e in l:
		if e != 1:
			if cur == 1:
				print('First')
			else:
				print('Second')
			flag = True
			break
		if cur == 1:
			cur = 2
		else:
			cur = 1
	if flag is False:
		if cur == 1:
			print('Second')
		else:
			print('First')


T = int(input())
for _ in range(T):
	n = int(input())
	a = list(map(int, input().split()))
	ans = None
	priority = None
	has_to = None
	cur = 0
	for x in a:
		if x == 1:
			if priority is not None:
				continue
			else:
				has_to = cur
				cur = 1 - cur
		elif priority is None:
			priority = cur
			ans = priority
	if ans is None:
		ans = has_to
	print('First' if ans == 0 else 'Second')


from collections import defaultdict
for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	count = 0
	bool = True
	for i in a:
		if i == 1:
			count += 1
		elif bool:
			last = count
			bool = False
	if count == len(a):
		if count % 2 == 0:
			print('Second')
		else:
			print('First')
	elif last % 2 == 0:
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	m = input().split()
	for i in range(n):
		if m[i] != '1':
			if i % 2 == 0:
				print('First')
			else:
				print('Second')
			break
	else:
		x = n
		if x % 2 == 1:
			print('First')
		else:
			print('Second')


str1 = 'First'
str2 = 'Second'

def solve():
	n = int(input())
	cnt = 0
	mas = list(map(int, input().split()))
	if sum(mas) == n:
		if n % 2 == 1:
			print(str1)
		else:
			print(str2)
		return
	for num in mas:
		if num == 1:
			cnt += 1
		else:
			break
	if cnt % 2 == 0:
		print(str1)
	else:
		print(str2)

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


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')
	elif count_one % 2 == 1:
		print('First')
	else:
		print('Second')


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


import sys
input = sys.stdin.readline
from collections import *
for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	cnt = 0
	for i in range(n - 1):
		if a[i] == 1:
			cnt += 1
		else:
			break
	if cnt % 2 == 0:
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1:
		print('First')
	elif a.count(1) == 0:
		print('First')
	else:
		nxt = 1
		i = 0
		while i < n - 1:
			if a[i] == 1:
				nxt ^= 1
			else:
				break
			i += 1
		if nxt == 0:
			print('Second')
		else:
			print('First')


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


from collections import Counter
import string
import math
import sys

def array_int():
	return [int(i) for i in sys.stdin.readline().split()]

def vary(arrber_of_variables):
	if arrber_of_variables == 1:
		return int(sys.stdin.readline())
	if arrber_of_variables >= 2:
		return map(int, sys.stdin.readline().split())

def makedict(var):
	return dict(Counter(var))

def printDivisors(n):
	divisors = []
	i = 1
	while i <= math.sqrt(n):
		if n % i == 0:
			if n // i == i:
				divisors.append(i)
			else:
				divisors.extend((i, n // i))
		i = i + 1
	return divisors
for _ in range(vary(1)):
	n = vary(1)
	num = array_int()
	if n == 1:
		print('First')
		continue
	if num[0] > 1:
		print('First')
	else:
		count = 0
		for i in range(1, n):
			if num[i] == 1:
				count += 1
			else:
				break
		if count == n - 1:
			if count % 2 == 0:
				print('First')
			else:
				print('Second')
		elif count % 2 == 0:
			print('Second')
		else:
			print('First')


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


for q in range(int(input())):
	n = int(input())
	line = list(map(int, input().split()))
	fl = True
	i = n - 2
	while i > -1:
		if fl == False or line[i] != 1:
			fl = True
		else:
			fl = False
		i -= 1
	if fl:
		print('First')
	else:
		print('Second')


p = int(input())
arr = []
for i in range(p):
	n = int(input())
	arr1 = [int(d) for d in input().split(' ')]
	win = 'First'
	if len(arr1) == 1:
		arr.append('First')
		continue
	k = 0
	for j in range(len(arr1)):
		if arr1[j] == 1 and j != len(arr1) - 1:
			k += 1
		elif arr1[j] == 1 and j == len(arr1) - 1:
			if k % 2 == 0:
				win = 'First'
			else:
				win = 'Second'
			break
		else:
			if k % 2 == 0:
				win = 'First'
			else:
				win = 'Second'
			break
	arr.append(win)
for j in range(len(arr)):
	print(arr[j])


from sys import stdin, stdout
for _ in range(int(stdin.readline())):
	n = int(stdin.readline())
	a = list(map(int, stdin.readline().split()))
	(f, s) = (1, 0)
	for i in range(n):
		f = 1 - f
		s = 1 - s
		if a[i] != 1:
			break
	print('First' if s else 'Second')


x = int(input())
for z in range(x):
	n = int(input())
	l = list(map(int, input().split()))
	d = l.count(1)
	c = 0
	if d == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		for i in range(n):
			if l[i] == 1:
				c += 1
			else:
				break
		if c % 2 == 0:
			print('First')
		else:
			print('Second')


times = int(input())
for time in range(times):
	n = int(input())
	vals = list(map(int, input().split()))
	isAllOne = True
	for val in vals:
		if val != 1:
			isAllOne = False
			break
	if isAllOne:
		if n % 2 == 1:
			print('First')
		else:
			print('Second')
	else:
		for (index, val) in enumerate(vals):
			if val != 1:
				if index % 2 == 0:
					print('First')
					break
				else:
					print('Second')
					break


from sys import stdin, stdout
from sys import maxsize
input = stdin.readline

def solve():
	pass
test = 1
test = int(input().strip())
for t in range(0, test):
	n = int(input().strip())
	a = [int(x) for x in input().strip().split()]
	flag = True
	for i in range(n):
		if a[i] != 1:
			flag = False
	if flag:
		ans = n % 2
	else:
		i = 0
		while a[i] == 1:
			i += 1
		ans = (i + 1) % 2
	if ans == 1:
		print('First')
	else:
		print('Second')
	ans = solve()


t = int(input())
for _ in range(t):
	n = int(input())
	a = [int(i) for i in input().split()]
	turn = 0
	for i in range(n):
		if a[i] > 1:
			if turn % 2 == 0:
				print('First')
				break
			else:
				print('Second')
				break
		if a[i] == 1:
			if i == n - 1:
				if turn % 2 == 0:
					print('First')
					break
				else:
					print('Second')
					break
		turn += 1


nb = int(input())
for k in range(nb):
	l = int(input())
	T = list(map(int, input().split(' ')))
	k = 0
	joueur = 0
	b = False
	while not b and k < l:
		if T[k] > 1:
			b = True
		else:
			joueur = 1 - joueur
			k += 1
	if b and joueur == 0:
		print('First')
	elif b and joueur == 1:
		print('Second')
	elif l % 2 == 0:
		print('Second')
	else:
		print('First')


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


for _ in range(int(input())):
	n = int(input())
	w = -1
	l = list(map(int, input().split()))
	for i in range(n):
		if l[i] > 1:
			w = i
			break
	if w == -1:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif w % 2 == 0:
		print('First')
	else:
		print('Second')


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


import os
import sys
from math import *
from collections import *
from fractions import *
from bisect import *
from heapq import *
from io import BytesIO, IOBase

def vsInput():
	sys.stdin = open('input.txt', 'r')
	sys.stdout = open('output.txt', 'w')
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')

def value():
	return tuple(map(int, input().split()))

def array():
	return [int(i) for i in input().split()]

def Int():
	return int(input())

def Str():
	return input()

def arrayS():
	return [i for i in input().split()]
for _ in range(Int()):
	n = Int()
	a = array()
	win = 1
	start = n - 1
	for j in range(n):
		if a[j] > 1:
			start = j
			break
	if start % 2 == 0:
		win = 0
	if win:
		print('Second')
	else:
		print('First')


t = int(input())
for _ in range(t):
	n = int(input())
	arr = list(map(int, input().strip().split()))[:n]
	turn = 0
	i = 0
	while i < n - 1:
		if arr[i] > 1:
			break
		else:
			turn = turn ^ 1
		i += 1
	if turn == 1:
		print('Second')
	else:
		print('First')


def main():
	t = Iint()
	for _ in range(t):
		n = Iint()
		a = Ilist()
		i = 0
		for ai in a:
			if ai == 1:
				i += 1
			else:
				break
		if i == n:
			print(['Second', 'First'][i % 2])
		else:
			print(['First', 'Second'][i % 2])
FIO = 1

def I():
	return input()

def Iint():
	return int(input())

def Ilist():
	return list(map(int, input().split()))

def Imap():
	return map(int, input().split())

def Plist(li, s=' '):
	print(s.join(map(str, li)))
en = enumerate
if not FIO:
	if __name__ == '__main__':
		main()
		exit()
else:
	from io import BytesIO, IOBase
	import sys
	import os
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))

def input():
	return sys.stdin.readline().rstrip('\r\n')
main()


t = int(input())
for i in range(t):
	n = int(input())
	a = [int(x) for x in input().split(' ')]
	flag = 0
	for j in range(len(a) - 1):
		if a[j] != 1:
			break
		else:
			flag = (flag + 1) % 2
	if flag == 0:
		print('First')
	else:
		print('Second')


from sys import stdin, stdout
import math, sys
from itertools import permutations, combinations
from collections import defaultdict, deque, OrderedDict
from os import path
import bisect as bi
import heapq

def yes():
	print('YES')

def no():
	print('NO')
if path.exists('input.txt'):
	sys.stdin = open('input.txt', 'r')
	sys.stdout = open('output.txt', 'w')

	def I():
		return int(input())

	def In():
		return map(int, input().split())
else:

	def I():
		return int(stdin.readline())

	def In():
		return map(int, stdin.readline().split())

def dict(a):
	d = {}
	for x in a:
		if d.get(x, -1) != -1:
			d[x] += 1
		else:
			d[x] = 1
	return d

def find_gt(a, x):
	i = bi.bisect_right(a, x)
	if i != len(a):
		return i
	else:
		return -1

def main():
	try:
		n = I()
		l = list(In())
		one = 0
		pos = -1
		for x in range(n):
			if l[x] == 1:
				one += 1
			if pos == -1:
				if l[x] != 1:
					pos = x
		if one == n:
			if n & 1 == 1:
				print('First')
			else:
				print('Second')
		elif pos % 2 == 0:
			print('First')
		else:
			print('Second')
	except:
		pass
M = 998244353
P = 1000000007
for _ in range(I()):
	main()


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


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


import math
try:
	t = int(input())
	while t:
		t -= 1
		n = int(input())
		l = list(map(int, input().split()))
		k = 0
		while k < n and l[k] == 1:
			k += 1
		if (k == n) ^ k % 2:
			print('Second')
		else:
			print('First')
except:
	pass


import sys
import math
import collections
from sys import stdin, stdout, setrecursionlimit
import bisect as bs
setrecursionlimit(2 ** 20)
MOD = 998244353
T = int(stdin.readline())
for _ in range(T):
	n = int(stdin.readline())
	a = list(map(int, stdin.readline().split()))
	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')


from sys import stdin
input = stdin.buffer.readline
for _ in range(int(input())):
	n = int(input())
	(*a,) = map(int, input().split())
	if a.count(1) == n:
		print(['Second', 'First'][n & 1])
	else:
		idx = 0
		while a[idx] == 1:
			idx += 1
		print(['First', 'Second'][idx & 1])


from sys import stdin, gettrace
if gettrace():
	inputi = input
else:

	def input():
		return next(stdin)[:-1]

	def inputi():
		return stdin.buffer.readline()

def solve():
	n = int(inputi())
	aa = [int(a) for a in inputi().split()]
	first = True
	for a in aa[:-1]:
		if a == 1:
			first = not first
		else:
			break
	if first:
		print('First')
	else:
		print('Second')

def main():
	t = int(inputi())
	for _ in range(t):
		solve()
main()


t = int(input())
for i in range(t):
	pile = int(input())
	eachPile = input().split()
	win = True
	was_1 = False
	for p in eachPile:
		if p != '1':
			was_1 = False
			break
		elif p == '1':
			if win:
				win = False
				was_1 = True
			else:
				win = True
				was_1 = True
	if was_1:
		if win:
			win = False
		else:
			win = True
	if win:
		print('First')
	else:
		print('Second')


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


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


for _ in range(int(input())):
	piles = int(input())
	array = list(map(int, input().split()))
	pos = piles
	for (i, j) in enumerate(array):
		if j != 1:
			pos = i + 1
			break
	if pos % 2 == 1:
		print('First')
	else:
		print('Second')


import sys

def input():
	return sys.stdin.readline().strip()
t = int(input())
while t:
	t -= 1
	n = int(input())
	a = [int(i) for i in input().split()]
	i = 0
	while i < n and a[i] == 1:
		i += 1
	if i == n:
		if not n % 2:
			print('Second')
		else:
			print('First')
	elif not i % 2:
		print('First')
	else:
		print('Second')


def main():
	for _ in range(int(input())):
		n = int(input())
		a = list(map(int, input().split()))
		ok = True
		for i in range(n - 2, -1, -1):
			ok = not ok or (1 < a[i] and ok)
		print('First' if ok else 'Second')
main()


t = input()
for i in range(int(t)):
	n = int(input())
	a = [int(aa) for aa in input().split()]
	b = []
	for i in range(n):
		if a[i] == 1:
			b.append(a[i])
		else:
			break
	if len(b) == len(a):
		if len(a) % 2 != 0:
			print('First')
		else:
			print('Second')
	elif len(b) % 2 == 0:
		print('First')
	else:
		print('Second')


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


t = int(input())
for _ in range(t):
	n = int(input())
	A = list(map(int, input().split()))
	J = [True] * n
	for i in range(n - 2, -1, -1):
		if J[i + 1]:
			if A[i] == 1:
				J[i] = False
			else:
				J[i] = True
		else:
			J[i] = True
	if J[0]:
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	N = int(input())
	List = [int(x) for x in input().split()]
	till = -1
	count = List.count(1)
	for i in range(N):
		if List[i] != 1:
			till = i
			break
	if till == -1 and count != N or (count & 1 and count == N):
		print('First')
	elif not till & 1:
		print('First')
	else:
		print('Second')


import os
import sys
from io import BytesIO, IOBase
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')

def list2d(a, b, c):
	return [[c] * b for i in range(a)]

def list3d(a, b, c, d):
	return [[[d] * c for j in range(b)] for i in range(a)]

def list4d(a, b, c, d, e):
	return [[[[e] * d for j in range(c)] for j in range(b)] for i in range(a)]

def ceil(x, y=1):
	return int(-(-x // y))

def Yes():
	print('Yes')

def No():
	print('No')

def YES():
	print('YES')

def NO():
	print('NO')
INF = 10 ** 18
MOD = 10 ** 9 + 7
Ri = lambda : [int(x) for x in sys.stdin.readline().split()]
ri = lambda : sys.stdin.readline().strip()
for _ in range(int(ri())):
	n = int(ri())
	a = Ri()
	ch = True
	flag = False
	for i in range(len(a)):
		if a[i] == 1:
			ch = not ch
		else:
			flag = True
			break
	if not flag:
		if ch:
			print('Second')
		else:
			print('First')
	elif ch:
		print('First')
	else:
		print('Second')


tc = int(input())
for _ in range(tc):
	n = int(input())
	c = 1
	l = map(int, input().rstrip().split())
	for v in l:
		if v > 1:
			break
		c *= -1
	else:
		c *= -1
	if c == 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')


t = int(input())
for i in range(t):
	a = int(input())
	b = list(map(int, input().split()))
	if sum(b) == a:
		if a % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		s = 0
		for j in b:
			if j == 1:
				s += 1
			else:
				break
		if s % 2 == 0:
			print('First')
		else:
			print('Second')


t = int(input())
for i in range(t):
	n = int(input())
	a = [int(v) for v in input().split()]
	s = 0
	f = 0
	if n == 1:
		f = 1
		s = 0
	else:
		j = 0
		while j < n:
			if a[j] > 1:
				if j % 2 == 0:
					f = 1
					s = 0
				else:
					s = 1
					f = 0
				break
			j = j + 1
		if s == 0 and f == 0:
			if n % 2 == 0:
				s = 1
			else:
				f = 1
	if s == 1:
		print('Second')
	else:
		print('First')


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


from sys import stdin
for _ in range(int(stdin.readline())):
	n = int(stdin.readline())
	a = [int(i) for i in stdin.readline().split(' ')]
	ones = 0
	rem = 0
	for i in range(n):
		if a[i] == 1:
			ones += 1
		else:
			rem = i
			break
	if ones == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif rem % 2 == 0:
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	L = [int(x) for x in input().split()]
	K = 0
	if sum(L) == n:
		print('Second' if n % 2 == 0 else 'First')
	else:
		for i in range(n):
			if L[i] == 1:
				K += 1
			else:
				break
		print('First' if K % 2 == 0 else 'Second')


def solve(arr, n, ans):
	moves = 0
	while arr and arr[0] == 1:
		moves += 1
		arr.pop(0)
	if not arr:
		moves += 1
	if moves % 2 == 0:
		ans.append('First')
	else:
		ans.append('Second')

def main():
	t = int(input())
	ans = []
	for i in range(t):
		n = int(input())
		arr = list(map(int, input().split()))
		solve(arr, n, ans)
	for i in ans:
		print(i)
main()


tc = int(input())
for _ in range(tc):
	leng = int(input())
	arr = list(map(int, input().split()))
	cnt = 0
	for i in arr:
		if i == 1:
			cnt += 1
		else:
			break
	if cnt % 2 == 0 and cnt != leng or (cnt % 2 == 1 and cnt == leng):
		print('First')
	else:
		print('Second')


import sys

def input():
	return sys.stdin.readline().strip()

def list2d(a, b, c):
	return [[c] * b for i in range(a)]

def list3d(a, b, c, d):
	return [[[d] * c for j in range(b)] for i in range(a)]

def list4d(a, b, c, d, e):
	return [[[[e] * d for j in range(c)] for j in range(b)] for i in range(a)]

def ceil(x, y=1):
	return int(-(-x // y))

def INT():
	return int(input())

def MAP():
	return map(int, input().split())

def LIST(N=None):
	return list(MAP()) if N is None else [INT() for i in range(N)]

def Yes():
	print('Yes')

def No():
	print('No')

def YES():
	print('YES')

def NO():
	print('NO')
INF = 10 ** 19
MOD = 10 ** 9 + 7
for _ in range(INT()):
	N = INT()
	A = LIST()
	win = 1
	for i in range(N - 2, -1, -1):
		if A[i] == 1:
			win ^= 1
		else:
			win = 1
	if win:
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	lis = list(map(int, input().strip().split()))[:n]
	ok = 0
	for i in range(0, n - 1):
		if lis[i] > 1:
			break
		ok = 1 - ok
	if ok == 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')
	elif ones % 2 == 1:
		print('First')
	else:
		print('Second')


from sys import stdin
input = lambda : stdin.readline().strip()
for _ in range(int(input())):
	n = int(input())
	lst = [int(i) for i in input().split()]
	nd = 0
	i = 0
	while i < n - 1:
		if lst[i] == 1:
			nd += 1
		elif i + 1 <= n - 1 and lst[i + 1] == 1:
			nk = 0
			while i < n - 1 and lst[i + 1] == 1:
				nk += 1
				nd += 1
				i += 1
			if nk % 2 != 0:
				nd += 1
			else:
				nd += 2
		else:
			nd += 2
		i += 1
	nd += 1
	if nd % 2 == 0:
		print('Second')
	else:
		print('First')


T = int(input())
for t in range(T):
	n = int(input())
	a = list(map(int, input().split()))
	i = 0
	while a[i] == 1:
		i = i + 1
		if i == n:
			break
		else:
			continue
	if i == n:
		if n % 2 == 0:
			res = 1
		else:
			res = 0
	elif i < n:
		if i % 2 == 0:
			res = 0
		else:
			res = 1
	if res == 0:
		print('First')
	else:
		print('Second')


t = int(input())
for u in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	ans = True
	i = 0
	while i < n and a[i] == 1:
		i += 1
		ans = not ans
	if ans:
		if i != n:
			print('First')
		else:
			print('Second')
	elif i != n:
		print('Second')
	else:
		print('First')


for _ in range(int(input())):
	input()
	win = True
	for i in input().split()[-2::-1]:
		if i == '1':
			win = not win
		else:
			win = True
	[print('First') if win else print('Second')]


def f(a):
	n = len(a)
	c = 0
	while c < n:
		if a[c] != 1:
			break
		c += 1
	if c != 0 and c != n:
		if c % 2 == 0:
			return 'First'
		return 'Second'
	if c == n:
		if n % 2 == 0:
			return 'Second'
		return 'First'
	return 'First'
t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	print(f(a))


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


for _ in range(int(input())):
	n = int(input())
	pile = list(map(int, input().split()))
	moves = 0
	flag = True
	for i in pile:
		flag = not flag
		if i != 1:
			break
	if flag:
		print('Second')
	else:
		print('First')


import sys
import math

def II():
	return int(sys.stdin.readline())

def LI():
	return list(map(int, sys.stdin.readline().split()))

def MI():
	return map(int, sys.stdin.readline().split())

def SI():
	return sys.stdin.readline().strip()
t = II()
for q in range(t):
	n = II()
	a = LI()
	if n == 1:
		print('First')
	else:
		count = 0
		for i in range(n):
			if a[i] == 1:
				count += 1
			else:
				break
		if count == n:
			if count % 2 == 0:
				print('Second')
			else:
				print('First')
		elif count % 2 == 0:
			print('First')
		else:
			print('Second')


def solve():
	n = int(input())
	a = list(map(int, input().split()))
	sets = set(a)
	if len(sets) == 1:
		if a[0] == 1:
			if n % 2 == 0:
				return 'Second'
			else:
				return 'First'
	if a[0] != 1:
		return 'First'
	else:
		i = 0
		while a[i] == 1:
			i += 1
		if i % 2 == 0:
			return 'First'
		else:
			return 'Second'
t = int(input())
for i in range(t):
	print(solve())


from bisect import bisect_right as br
for pratyush in range(int(input())):
	(n, k) = (int(input()), 0)
	a = list(map(int, input().split()))
	while k < n and a[k] == 1:
		k += 1
	if (k == n) ^ k % 2:
		print('Second')
	else:
		print('First')


t = int(input())
for f in range(t):
	n = int(input())
	arr = list(map(int, input().strip().split()))
	dp = [0] * n
	dp[0] = 1
	for i in range(1, n):
		if dp[i - 1] == 1:
			if arr[n - 1 - i] == 1:
				dp[i] = 0
			else:
				dp[i] = 1
		else:
			dp[i] = 1
	if dp[n - 1] == 1:
		print('First')
	else:
		print('Second')


lines = int(input())
lines *= 2
InpList = []
for i in range(lines):
	InpList.append(input())
counter = 0
ListCounter = 1
while len(InpList) > ListCounter:
	ListVar = InpList[ListCounter]
	ListVar = list(map(int, ListVar.split()))
	ListCounter += 2
	while counter < len(ListVar):
		if ListVar[counter] == 1:
			counter += 1
		else:
			break
	if counter == len(ListVar):
		counter += 1
	counter %= 2
	if counter == 0:
		print('First')
	else:
		print('Second')
		counter = 0


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


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


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


t = int(input())
for k in range(t):
	n = int(input())
	a = [int(i) for i in input().split()]
	for i in range(n):
		if a[i] > 1:
			break
	print('Second') if i % 2 else print('First')


def solve():
	n = int(input())
	a = list(map(int, input().split()))
	x = 0
	for x in range(0, n):
		if a[x] > 1:
			break
	if x & 1:
		print('Second')
	else:
		print('First')
for t in range(int(input())):
	solve()


def winner_is(arr, arr_len):
	all_are_one = True
	for i in range(arr_len):
		if int(arr[i]) > 1 and i % 2 == 0:
			all_are_one = False
			return 'First'
		if int(arr[i]) > 1 and i % 2 != 0:
			all_are_one = False
			return 'Second'
	if all_are_one:
		if arr_len % 2 == 0:
			return 'Second'
		else:
			return 'First'
test_case_count = int(input())
for i in range(test_case_count):
	arr_len = int(input())
	arr = input().split(' ')
	print(winner_is(arr, arr_len))


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


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


def swap(num):
	swp = {1: 2, 2: 1}
	return swp[num]

def func(n, a):
	turn = 2
	ind = 0
	verdict = {1: 'First', 2: 'Second'}
	while True:
		turn = swap(turn)
		if a[ind] > 1:
			return verdict[turn]
		elif ind == n - 1:
			return verdict[turn]
		else:
			ind += 1

def main():
	t = int(input())
	for i in range(t):
		n = int(input())
		a = [int(x) for x in input().split()]
		print(func(n, a))
main()


from sys import stdin, stdout
import math
from itertools import permutations, combinations
from collections import defaultdict
from bisect import bisect_left
mod = 1000000007

def L():
	return list(map(int, stdin.readline().split()))

def In():
	return map(int, stdin.readline().split())

def I():
	return int(stdin.readline())

def printIn(ob):
	return stdout.write(str(ob) + '\n')

def powerLL(n, p):
	result = 1
	while p:
		if p & 1:
			result = result * n % mod
		p = int(p / 2)
		n = n * n % mod
	return result

def myCode():
	n = I()
	arr = L()
	for i in range(n):
		if arr[i] != 1:
			break
	if i % 2 == 0:
		print('First')
	else:
		print('Second')

def main():
	for t in range(I()):
		myCode()
main()


import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
	n = int(input())
	s = list(map(int, input().split()))
	one = s.count(1)
	if one == n:
		if one % 2:
			print('First')
		else:
			print('Second')
	else:
		winner = True
		for num in s:
			if num == 1:
				winner = not winner
			else:
				break
		print('First' if winner else 'Second')


def foo():
	n = int(input())
	a = list(map(int, input().split()))
	ones = a.count(1)
	if ones == n:
		if n & 1:
			print('First')
		else:
			print('Second')
		return
	if ones == 0:
		print('First')
		return
	for i in range(n):
		if a[i] != 1:
			temp = i
			break
	if temp & 1:
		print('Second')
	else:
		print('First')
t = int(input())
for _ in range(t):
	foo()


for _ in range(int(input())):
	n = int(input())
	ar = list(map(int, input().split()))
	ct = 0
	for i in ar:
		if i == 1:
			ct ^= 1
		else:
			break
	print(['First', 'Second'][ct ^ (ar.count(1) == n)])


for _ in range(int(input())):
	n = int(input())
	arr = list((int(i) for i in input().split()))
	if n == 1:
		print('First')
	else:
		cnt = arr.count(1)
		if cnt == n:
			if cnt % 2 == 0:
				print('Second')
			else:
				print('First')
		elif cnt == 0:
			print('First')
		else:
			j = 0
			cnt = 0
			while j < n:
				if arr[j] == 1:
					cnt += 1
					j += 1
				else:
					break
			if cnt % 2 == 0:
				print('First')
			else:
				print('Second')


for t in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	a1 = a.copy()
	c = 1
	for ii in range(len(a1) - 1):
		if a1[ii] == 1:
			if c == 1:
				c = 2
			else:
				c = 1
		else:
			break
	if c == 2:
		print('Second')
	else:
		print('First')


def win():
	n = int(input())
	l = list(map(int, input().split()))
	for i in l:
		if 1 not in l:
			print('First')
			break
		elif len(set(l)) == 1 and l[0] == 1:
			if len(l) % 2 == 0:
				print('Second')
				break
			else:
				print('First')
				break
		elif i != 1:
			if l.index(i) % 2 == 0:
				print('First')
				break
			else:
				print('Second')
				break
t = int(input())
for i in range(t):
	win()


def main():
	_ = input()
	a = list(map(int, input().split()))
	current = 0
	i = 0
	while i < len(a) and a[i] == 1:
		i += 1
	if i % 2 == 0 and i < len(a) or (i == len(a) and i % 2 == 1):
		print('First')
	else:
		print('Second')
t = int(input())
for _ in range(t):
	main()


t = int(input())
for i in range(0, t):
	n = int(input())
	L = list(map(int, input().split()))
	if n == 1:
		print('First')
	elif all((e == 1 for e in L)):
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		for i in range(0, n):
			if L[i] != 1:
				if i % 2 == 1:
					print('Second')
				else:
					print('First')
				break


import math as mt
import sys, string
from collections import Counter, defaultdict
input = sys.stdin.readline
MOD = 1000000007
I = lambda : int(input())
M = lambda : map(int, input().split())
Ms = lambda : map(str, input().split())
ARR = lambda : list(map(int, input().split()))

def main():
	n = I()
	arr = ARR()
	one = 0
	for i in range(n):
		if arr[one] == 1:
			one += 1
	if one == n:
		if one % 2:
			print('First')
		else:
			print('Second')
		return
	if one % 2:
		print('Second')
	else:
		print('First')
tc = I()
for _ in range(tc):
	main()


from sys import stdin
t = int(stdin.readline())
for i in range(t):
	n = int(stdin.readline())
	a = list(map(int, stdin.readline().split()))
	odd = False
	even = False
	ones = 0
	for x in a:
		if x == 1:
			ones += 1
		else:
			break
	if ones % 2 == 0:
		even = True
	else:
		odd = True
	if ones == n and odd or (ones < n and even):
		print('First')
	else:
		print('Second')


t = input()
t = int(t)

def solve(n, arr):
	cnt = 0
	for x in arr:
		if x == 1:
			cnt += 1
		else:
			break
	if cnt < n:
		if cnt % 2 == 0:
			print('First')
		else:
			print('Second')
	elif cnt % 2 == 0:
		print('Second')
	else:
		print('First')
for i in range(t):
	n = input()
	n = int(n)
	arr = list(map(int, input().split()))
	solve(n, arr)


t = int(input())
for t1 in range(t):
	n = int(input())
	a = [int(n1) for n1 in input().split()]
	count = 0
	for i in range(len(a)):
		if a[i] != 1:
			count = 1
			if i % 2 == 0:
				print('First')
				break
			else:
				print('Second')
				break
		else:
			pass
	if count == 0:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')


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


t = int(input())
for _ in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	if n == 1:
		print('First')
	elif n == 2:
		if l[0] > 1:
			print('First')
		else:
			print('Second')
	elif sum(l) - l[-1] == n - 1:
		if n % 2 == 1:
			print('First')
		else:
			print('Second')
	else:
		c = 0
		for i in l:
			if i == 1:
				c += 1
			else:
				break
		if c % 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 i in range(t):
	n = int(input())
	a = [int(j) for j in input().split()[:n]]
	x = 0
	p = -1
	for j in range(n):
		if a[j] > 1:
			p = j
			break
		x += 1
	if p != -1:
		if p % 2 == 0:
			print('First')
		else:
			print('Second')
	elif n % 2 == 0 and x == n:
		print('Second')
	elif n % 2 != 0 and x == n:
		print('First')


t = int(input())
for q in range(t):
	n = int(input())
	s = input().split()
	for j in range(n):
		s[j] = int(s[j])
	l = []
	for j in range(n):
		l.append(0)
	l[n - 1] = 1
	for j in range(n - 1):
		p = n - j - 2
		if s[p] == 1:
			l[p] = not l[p + 1]
		else:
			l[p] = 1
	if l[0] == 1:
		print('First')
	else:
		print('Second')


y = int(input())
for i in range(y):
	n = int(input())
	a = list(map(int, input().split()))
	if sum(a) == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		count_ones = 0
		for j in range(n):
			if a[j] > 1:
				break
			else:
				count_ones += 1
		if count_ones % 2 == 0:
			print('First')
		else:
			print('Second')


def nim(a, n):
	i = 0
	while i < n:
		if a[i] != 1:
			if (i + 1) % 2 == 0:
				print('Second')
				return
			else:
				print('First')
				return
		i = i + 1
	if i % 2 == 0:
		print('Second')
	else:
		print('First')
for i in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	nim(a, n)


for _ in range(int(input())):
	n = int(input())
	s = list(map(int, input().split()))
	first = 1
	second = 0
	if len(s) == 1:
		print('First')
	elif sum(s) == n:
		if n % 2:
			print('First')
		else:
			print('Second')
	else:
		k = s.count(1)
		if k == 0:
			print('First')
		else:
			i = 0
			first = 1
			second = 0
			while s[i] == 1:
				(first, second) = (second, first)
				i += 1
			if second:
				print('Second')
			else:
				print('First')


for _ in range(int(input())):
	n = int(input())
	piles = list(map(int, input().split()))
	ones = 0
	for i in range(n):
		if piles[i] == 1:
			ones += 1
		else:
			break
	if ones == n:
		if ones & 1 == 1:
			print('First')
		else:
			print('Second')
	elif ones & 1 == 0:
		print('First')
	else:
		print('Second')


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


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


import sys
input = sys.stdin.readline
for i in range(int(input())):
	n = int(input())
	a = [int(x) for x in input().split()]
	if n == 1:
		print('First')
	else:
		cnt1 = a.count(1)
		cnti = n - cnt1
		if cnt1 == n:
			if n % 2 == 1:
				print('First')
			else:
				print('Second')
		elif cnt1 == 0:
			print('First')
		else:
			continous1 = 0
			for i in range(n):
				if a[i] == 1:
					continous1 += 1
				else:
					break
			if continous1 % 2 == 0:
				print('First')
			else:
				print('Second')


import sys
sys.setrecursionlimit(10 ** 6)
int1 = lambda x: int(x) - 1
p2D = lambda x: print(*x, sep='\n')

def II():
	return int(sys.stdin.readline())

def MI():
	return map(int, sys.stdin.readline().split())

def LI():
	return list(map(int, sys.stdin.readline().split()))

def LLI(rows_number):
	return [LI() for _ in range(rows_number)]

def SI():
	return sys.stdin.readline()[:-1]

def bit(xx):
	return [format(x, 'b') for x in xx]
popcnt = lambda x: bin(x).count('1')
for _ in range(II()):
	n = II()
	aa = LI()
	sec = (n + 1) % 2
	for (i, a) in enumerate(aa):
		if a > 1:
			sec = i % 2
			break
	print(['First', 'Second'][sec])


import sys
input = sys.stdin.readline

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


for _ in range(int(input())):
	n = int(input())
	a = [int(i) for i in input().split()]
	k = 0
	while k < n and a[k] == 1:
		k += 1
	if k == n and k % 2 == 0:
		print('Second')
	elif k == n and k % 2 != 0:
		print('First')
	elif k % 2 == 0:
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	(n,) = map(int, input().split())
	for (i, v) in enumerate(map(int, input().split())):
		if v > 1:
			print('Second' if i & 1 else 'First')
			break
	else:
		print('Second' if not n & 1 else 'First')


tc = int(input())
while tc:
	n = int(input())
	a = list(map(int, input().split()))
	if a.count(1) == n:
		if n % 2 == 1:
			print('First')
		else:
			print('Second')
	else:
		k = 0
		while k < n and a[k] == 1:
			k += 1
		if k % 2 == 0:
			print('First')
		else:
			print('Second')
	tc -= 1


for _ in range(int(input())):
	n = int(input())
	num = [int(x) for x in input().split()]
	num.pop()
	x = 0
	count = 0
	while x < n - 1:
		if num[x] == 1:
			count += 1
			x += 1
		else:
			break
	if count % 2 == 1:
		print('Second')
	else:
		print('First')


import sys
li = lambda : [int(x) for x in sys.stdin.readline().strip().split()]
rw = lambda : sys.stdin.readline().strip().split()
ni = lambda : int(sys.stdin.readline().strip())
nsi = lambda : sys.stdin.readline().strip()
from collections import defaultdict as df
from math import *
t = ni()
for _ in range(t):
	n = ni()
	l = li()
	for i in range(len(l)):
		if l[i] != 1:
			break
	if i % 2 == 0:
		print('First')
	else:
		print('Second')


def main():
	t = int(input())
	for _ in range(t):
		n = int(input())
		s = list(map(int, input().split()))
		if n == 0:
			print('First')
		else:
			dp = True
			for i in range(n - 1):
				if s[i] != 1:
					print('First' if dp else 'Second')
					break
				else:
					dp = not dp
			else:
				print('First' if dp else 'Second')
main()


def readn():
	return int(input())

def readlist():
	return list(map(int, input().split()))

def readnos():
	return map(int, input().split())
for _ in range(int(input())):
	n = readn()
	a = readlist()
	if n == 1:
		print('First')
	else:
		cnt = 0
		i = 0
		while i < n:
			if a[i] != 1:
				break
			i += 1
		if i == n:
			if n % 2 == 0:
				print('Second')
			else:
				print('First')
		elif i % 2 == 0:
			print('First')
		else:
			print('Second')


from math import ceil, gcd
from math import factorial as fact, comb as ncr
from math import sqrt
from bisect import bisect_left as bl
from bisect import bisect_right as br
from array import array
from collections import Counter as ctr
from collections import deque as dq

def li():
	return list(map(int, input().split()))

def arr(a):
	return array('i', a)

def solve():
	for _ in range(int(input())):
		n = int(input())
		a = li()
		f = 0
		for i in range(n - 1):
			if a[i] == 1:
				f += 1
			else:
				break
		print('First' if f % 2 == 0 else 'Second')
solve()


fr = 'First'
sec = 'Second'

def help():
	n = int(input())
	A = list(map(int, input().split()))
	ones = 0
	for i in A:
		if i == 1:
			ones += 1
		else:
			break
	if ones == n:
		if n % 2 == 1:
			return fr
		else:
			return sec
	if ones == 0:
		return fr
	if ones % 2 == 1:
		return sec
	return fr
t = int(input())
for T in range(t):
	print(help())


t = int(input())
for i in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	count = 0
	flag = 0
	for i in range(n):
		if l[i] == 1 and flag == 0:
			count += 1
		else:
			flag = 1
	if flag == 1:
		if count % 2 != 0:
			print('Second')
		else:
			print('First')
	elif count % 2 == 0:
		print('Second')
	else:
		print('First')


n = int(input())
for i1 in range(n):
	n1 = int(input())
	lst = [int(x) for x in input().split()]
	cnt = 0
	for x in lst:
		if x == 1:
			cnt += 1
		else:
			break
	if cnt == len(lst):
		if cnt % 2 == 0:
			print('Second')
		else:
			print('First')
	elif cnt % 2 == 0:
		print('First')
	else:
		print('Second')


def answer(arr, n):
	len_counter = 0
	for x in arr:
		if x == 1:
			len_counter += 1
		elif len_counter % 2 == 0:
			return 'First'
		else:
			return 'Second'
	if n % 2 == 0:
		return 'Second'
	else:
		return 'First'
t = int(input())
for _ in range(t):
	n = int(input())
	arr = [int(x) for x in input().split()]
	result = answer(arr, n)
	print(result)


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


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	cnt = 0
	p = 0
	if n == 1:
		print('First')
	else:
		for j in range(n):
			if a[j] > 1:
				if (j + 1) % 2 == 0:
					print('Second')
				else:
					print('First')
				break
			if j == n - 1 and a[j] == 1:
				if n % 2 == 0:
					print('Second')
				else:
					print('First')


t = int(input())
ans = []
for _ in range(t):
	n = int(input())
	arr = input().split()
	for i in range(n):
		arr[i] = int(arr[i])
	if n == 1:
		ans.append('First')
		continue
	if arr[0] != 1:
		ans.append('First')
		continue
	count = 0
	for i in range(n - 1):
		if arr[i] == 1:
			count += 1
		else:
			break
	if count % 2 == 0:
		ans.append('First')
	else:
		ans.append('Second')
for i in range(len(ans)):
	print(ans[i])


for i in range(int(input())):
	n = int(input())
	a = [int(i) for i in input().split()][:n]
	v = a.count(1)
	c = 0
	if v == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif v == 0:
		print('First')
	else:
		for j in a:
			c += 1
			if j != 1:
				if c % 2 == 0:
					print('Second')
					break
				else:
					print('First')
					break


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


import os
import sys
from io import BytesIO, IOBase
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')
from math import gcd, ceil

def pre(s):
	n = len(s)
	pi = [0] * n
	for i in range(1, n):
		j = pi[i - 1]
		while j and s[i] != s[j]:
			j = pi[j - 1]
		if s[i] == s[j]:
			j += 1
		pi[i] = j
	return pi

def prod(a):
	ans = 1
	for each in a:
		ans = ans * each
	return ans

def lcm(a, b):
	return a * b // gcd(a, b)

def binary(x, length=16):
	y = bin(x)[2:]
	return y if len(y) >= length else '0' * (length - len(y)) + y
for _ in range(int(input()) if True else 1):
	n = int(input())
	a = list(map(int, input().split()))
	ans = 0
	for i in range(n):
		if a[i] == 1:
			ans += 1
		else:
			break
	if ans == n:
		ans += 1
	print(['First', 'Second'][ans % 2])


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


for I in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	flag = -1
	for i in range(n):
		if a[i] > 1:
			flag = i
			break
	if flag == -1:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif flag % 2 == 0:
		print('First')
	else:
		print('Second')


testcases = int(input())
for i in range(testcases):
	n = int(input())
	stones = list(map(int, input().split()))
	no_of_1 = 0
	for j in range(1, n - 1):
		if stones[j] == 1:
			no_of_1 += 1
	no_of_1_left = int(no_of_1)
	playing = 1
	for j in range(n):
		if j == n - 1:
			if playing == 1:
				print('First')
			else:
				print('Second')
		elif stones[j] == 1:
			no_of_1_left -= 1
			if playing == 1:
				playing = 2
			else:
				playing = 1
		elif stones[j + 1] == 1:
			count = 0
			for k in range(j + 1, n - 1):
				if stones[k] == 1:
					count += 1
				else:
					break
			if count % 2 == 1:
				if playing == 1:
					playing = 2
				else:
					playing = 1


for abcd in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	c = 0
	ans = 'First'
	for i in a:
		if i == 1:
			c = c + 1
	if c == n:
		if c % 2 == 0:
			ans = 'Second'
	else:
		x = 0
		s = 1
		for i in a:
			if i != 1:
				x = i
				break
			elif s == 1:
				s = 2
			else:
				s = 1
		if s == 2:
			ans = 'Second'
	print(ans)


T = int(input())
for _ in range(T):
	n = int(input())
	s = list(map(int, input().split()))
	win = 0
	for i in range(n - 1):
		if s[i] == 1:
			win = 1 - win
		else:
			break
	print('First' if win == 0 else 'Second')


import sys, collections, math

def in_out():
	sys.stdin = open('input.txt', 'r')
	sys.stdout = open('output.txt', 'w')
from collections import Counter
for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	greater = 0
	smaller = 0
	for (i, ele) in enumerate(arr):
		if ele > 1:
			break
	if i % 2 == 0:
		print('First')
	else:
		print('Second')


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	winner = 'First'
	loser = 'Second'
	index = -1
	for j in range(n):
		if a[j] > 1:
			index = j
			break
	if index == -1:
		if n % 2 == 0:
			(winner, loser) = (loser, winner)
	elif index % 2 > 0:
		(winner, loser) = (loser, winner)
	print(winner)


def solve():
	n = int(input())
	l = [int(x) for x in input().split()]
	k = 0
	while k < n and l[k] == 1:
		k += 1
	if k == n:
		print('First' if k % 2 != 0 else 'Second')
	else:
		print('First' if k % 2 == 0 else 'Second')
for _ in range(int(input())):
	solve()


from fractions import Fraction
from collections import defaultdict
import math
import os
import sys
from io import BytesIO, IOBase
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))

def input():
	return sys.stdin.readline().rstrip('\r\n')
krish = 1000
res = krish - 900
t = int(input())
for _ in range(t):
	c = 0
	n = int(input())
	l = list([int(x) for x in input().split()])
	for i in l:
		if i == 1:
			c += 1
		else:
			break
	if c == n:
		if c & 1:
			print('First')
		else:
			print('Second')
	elif c & 1 == 0:
		print('First')
	else:
		print('Second')
	res += 1


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


import sys
import math
from collections import defaultdict
t = int(sys.stdin.readline())
for _ in range(t):
	n = int(sys.stdin.readline())
	arr = list(map(int, sys.stdin.readline().split()))
	cnt = 0
	z = True
	for i in range(n):
		if arr[i] == 1:
			cnt += 1
		else:
			if cnt % 2 != 0:
				print('Second')
			else:
				print('First')
			z = False
			break
	if z:
		if cnt % 2 == 0:
			print('Second')
		else:
			print('First')


t = int(input())
dict = {}
ones = 0
for i in range(t):
	n = int(input())
	a = str(input()).split(' ')
	dict[i] = (n, a)
for key in dict.keys():
	if dict[key][0] > 1:
		for j in range(len(dict[key][1])):
			if int(dict[key][1][j]) == 1:
				ones += 1
				if ones == len(dict[key][1]):
					if ones / 2 > ones // 2:
						print('First')
						ones = 0
						break
					else:
						print('Second')
						ones = 0
						break
			elif ones == 0:
				print('First')
				ones = 0
				break
			elif ones / 2 > ones // 2:
				print('Second')
				ones = 0
				break
			else:
				print('First')
				ones = 0
				break
	else:
		print('First')
		ones = 0


t = int(input())
while t:
	n = int(input())
	a = [int(x) for x in input().split()]
	for i in range(len(a)):
		if a[i] > 1:
			a[i] = 2
		else:
			a[i] = 1
	try:
		idx = a.index(2)
		if idx % 2 == 0:
			print('First')
		else:
			print('Second')
	except:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	t -= 1


for l in [*open(0)][2::2]:
	c = 1
	for x in (l + '1 2').split():
		if x == '1':
			c ^= 1
		else:
			break
	print('SFeicrosntd'[c::2])


import sys
reader = (s.rstrip() for s in sys.stdin)
input = reader.__next__
t = int(input())
for _ in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	dp = [0 for x in range(n)]
	dp[-1] = 1
	for x in range(n - 2, -1, -1):
		if dp[x + 1] == 0:
			dp[x] = 1
		elif arr[x] == 1:
			dp[x] = 0
		else:
			dp[x] = 1
	print('First' if dp[0] else 'Second')


for s in range(int(input())):
	n = int(input())
	x = [int(i) for i in input().split()]
	c = 0
	for i in x:
		if i == 1:
			c += 1
		else:
			break
	if c == n:
		if c % 2 == 1:
			print('First')
		else:
			print('Second')
	elif c % 2 == 1:
		print('Second')
	else:
		print('First')


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


t = int(input())
for o in range(t):
	n = int(input())
	l = list(map(int, input().strip().split()))
	winner = 1
	for i in range(n):
		winner = winner + 1
		winner = winner % 2
		if l[i] > 1:
			break
	if winner == 0:
		print('First')
	else:
		print('Second')


def f(a):
	k = -1
	for i in range(len(a)):
		if a[i] > 1:
			k = i
			break
	if k == -1:
		if len(a) % 2:
			return 'First'
		else:
			return 'Second'
	if k % 2:
		return 'Second'
	else:
		return 'First'
t = int(input())
r = []
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	r.append(f(a))
for _ in r:
	print(_)


n = int(input())
for i in range(n):
	m = int(input())
	s = input().split(' ')
	a = []
	for c in s:
		a.append(int(c))
	b = -1
	for j in range(m):
		if a[j] != 1:
			b = j
			break
	if b == -1:
		if m % 2 == 0:
			print('Second')
		else:
			print('First')
	elif b % 2 == 0:
		print('First')
	else:
		print('Second')


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	now = ['First', 'Second']
	i = 0
	res = 0
	while i < n and a[i] == 1:
		res = (res + 1) % 2
		i += 1
	if i == n:
		print(now[1 - res])
	else:
		print(now[res])


from sys import stdin, stdout
test = int(stdin.readline())
for _ in range(test):
	N = int(stdin.readline())
	a = [int(x) for x in stdin.readline().split()]
	ind = N
	found = False
	if 1 not in a:
		print('First')
		continue
	for i in range(N):
		if a[i] != 1:
			found = True
			ind = i
			break
	if not found:
		if N & 1:
			print('First')
		else:
			print('Second')
		continue
	print('Second') if ind & 1 else print('First')


t = int(input().split()[0])
for case in range(t):
	n = int(input().split()[0])
	a = list(map(int, input().split()))
	ones = 0
	pt = 0
	while pt < n:
		if a[pt] == 1:
			ones += 1
			pt += 1
		else:
			break
	if pt == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif ones % 2 == 0:
		print('First')
	else:
		print('Second')


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	can_win = False
	for x in a[::-1]:
		if can_win:
			can_win = x > 1
		else:
			can_win = True
	if can_win:
		print('First')
	else:
		print('Second')


def solve():
	n = int(input())
	a = list(map(int, input().split()))[::-1]
	win = True
	for i in range(1, n):
		if a[i] == 1:
			win = not win
		else:
			win = True
	print('First' if win else 'Second')
t = int(input())
for _ in range(t):
	solve()


t = int(input())
while t > 0:
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1 or a[0] > 1:
		print('First')
	else:
		p = -1
		for i in range(n):
			if a[i] > 1:
				p = i
				break
		if p == -1:
			if n % 2 == 0:
				print('Second')
			else:
				print('First')
		elif p % 2 == 0:
			print('First')
		else:
			print('Second')
	t = t - 1


T = int(input())
for _ in range(T):
	n = int(input())
	a = list(map(int, input().strip().split()))
	i = 0
	while i < n and a[i] == 1:
		i += 1
	if i == n:
		i += 1
	if i % 2 == 0:
		print('First')
	else:
		print('Second')


for z in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	s1 = 'First'
	s2 = 'Second'
	chance = 0
	for i in range(n):
		if a[i] == 1:
			chance = 1 - chance
		else:
			break
	if i == n - 1:
		if n % 2 == 0:
			print(s2)
		else:
			print(s1)
	elif chance == 0:
		print(s1)
	else:
		print(s2)


tc = int(input())
while tc != 0:
	a = int(input())
	arr = list(map(int, input().split()))
	tc -= 1
	c = 0
	ans = 0
	for _ in range(a - 1):
		if arr[_] > 1:
			c = 1
		if arr[_] == 1 and c == 0:
			ans += 1
	if ans & 1:
		print('Second')
	else:
		print('First')


T = int(input())
for t in range(T):
	n = int(input())
	a = list(map(int, input().split()))
	first = True
	for i in range(n - 1):
		if a[i] == 1:
			first = not first
		else:
			break
	if first:
		print('First')
	else:
		print('Second')


from sys import stdin, stdout
import heapq
import cProfile
from collections import Counter, defaultdict, deque
from functools import reduce
import math

def get_int():
	return int(stdin.readline().strip())

def get_tuple():
	return map(int, stdin.readline().split())

def get_list():
	return list(map(int, stdin.readline().split()))

def solve():
	n = get_int()
	a = list(reversed(get_list()))
	value = 1
	for val in a[1:]:
		if val == 1:
			value += 1
		elif value % 2 == 0:
			value += 1
		else:
			value += 2
	if value % 2:
		print('First')
	else:
		print('Second')

def main():
	solve()
TestCases = True
if TestCases:
	for i in range(get_int()):
		main()
else:
	main()


import sys
input = sys.stdin.buffer.readline

def print(val):
	sys.stdout.write(val + '\n')

def prog():
	for _ in range(int(input())):
		n = int(input())
		a = list(map(int, input().split())) + [2]
		if len(a) == 1:
			print('First')
		else:
			i = 0
			while a[i] == 1:
				i += 1
			if i == n:
				if i % 2 == 0:
					print('Second')
				else:
					print('First')
			elif i % 2 == 0:
				print('First')
			else:
				print('Second')
prog()


T = int(input())

def solve(arr):
	for i in range(0, len(arr)):
		if arr[i] == 1 or arr[i] == 0:
			continue
		else:
			break
	if i % 2 == 0:
		print('First')
	else:
		print('Second')
while T > 0:
	n = int(input())
	arr = [int(el) for el in input().split(' ')]
	solve(arr)
	T -= 1


def solve(seq):
	seq = seq[::-1]
	state = None
	for k in seq:
		if state == None:
			state = True
		elif k == 1:
			state = not state
		else:
			state = True
	if state:
		return 'First'
	return 'Second'
t = int(input())
for _ in range(t):
	l = int(input())
	s = [int(i) for i in input().split()]
	print(solve(s))


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


for _ in range(int(input())):
	n = int(input())
	s = list(map(int, input().split()))
	if s[0] != 1:
		print('First')
	else:
		first = s[::2]
		second = s[1::2]
		dfirst = 1000001
		dsecond = 1000001
		for i in range(len(first)):
			if first[i] != 1:
				dfirst = i
				break
		for i in range(len(second)):
			if second[i] != 1:
				dsecond = i
				break
		if dfirst == dsecond:
			if dfirst != 1000001:
				print('First')
			elif n % 2 == 0:
				print('Second')
			else:
				print('First')
		elif dfirst < dsecond:
			print('First')
		elif dfirst > dsecond:
			print('Second')


from __future__ import division, print_function
import itertools, os, sys, threading
from io import BytesIO, IOBase
if sys.version_info[0] < 3:
	from __builtin__ import xrange as range
	from future_builtins import ascii, filter, hex, map, oct, zip
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')

def print(*args, **kwargs):
	(sep, file) = (kwargs.pop('sep', ' '), kwargs.pop('file', sys.stdout))
	at_start = True
	for x in args:
		if not at_start:
			file.write(sep)
		file.write(str(x))
		at_start = False
	file.write(kwargs.pop('end', '\n'))
	if kwargs.pop('flush', False):
		file.flush()
if sys.version_info[0] < 3:
	(sys.stdin, sys.stdout) = (FastIO(sys.stdin), FastIO(sys.stdout))
else:
	(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
from math import sqrt, floor, factorial, gcd, log, ceil
from collections import deque, Counter, defaultdict
from itertools import permutations, combinations
from math import gcd
from bisect import bisect
from random import randrange
input = lambda : sys.stdin.readline().rstrip('\r\n')
read = lambda : list(map(int, input().strip().split(' ')))

def main():
	for _ in range(int(input())):
		n = int(input())
		arr = read()
		if n == 1:
			print('First')
			continue
		ans = ['First', 'Second']
		f = 0
		while f < n - 1 and arr[f] == 1:
			f += 1
		print(ans[f % 2])
main()


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	k = 0
	while k < n and a[k] == 1:
		k += 1
	if k % 2 == 0:
		win = False
	else:
		win = True
	if k == n:
		win = not win
	if not win:
		print('First')
	else:
		print('Second')


t = int(input())
for _ in range(t):
	n = int(input())
	lst = input().split()
	lst = [int(i) for i in lst]
	won = True
	for i in lst[-2::-1]:
		if i == 1:
			won = not won
		else:
			won = True
	if won:
		print('First')
	else:
		print('Second')


def solve(list_a):
	flag = False
	for i in list_a:
		if i == 1:
			flag = not flag
		else:
			flag = not flag
			break
	if flag:
		print('First')
	else:
		print('Second')
t = int(input())
for _ in range(t):
	n = int(input())
	list_a = list(map(int, input().split()))
	solve(list_a)


t = int(input())
for i in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	turn = 1
	for i in range(n):
		if i == n - 1:
			l[i] = 0
			if turn == 1:
				turn = 2
			else:
				turn = 1
			break
		else:
			while l[i] > 0:
				if l[i] > 1:
					count = 0
					isMulti = False
					special_flag = False
					ind = i + 1
					while ind < n:
						if l[ind] == 1:
							count += 1
						if l[ind] > 1:
							special_flag = True
							break
						ind += 1
					if count != 0 and count % 2 == 0 and (special_flag == True):
						isMulti = False
					elif count % 2 != 0 and special_flag == True:
						isMulti = True
					elif count % 2 == 0 and special_flag == False:
						isMulti = True
					elif count % 2 != 0 and special_flag == False:
						isMulti = False
					if isMulti:
						l[i] = 0
					else:
						l[i] = 1
					if turn == 1:
						turn = 2
					else:
						turn = 1
				elif l[i] == 1:
					l[i] = 0
					if turn == 1:
						turn = 2
					else:
						turn = 1
	if turn == 2:
		print('First')
	else:
		print('Second')


import sys

def input():
	return sys.stdin.readline()[:-1]

def getInt():
	return int(input())

def getIntIter():
	return map(int, input().split())

def getIntList():
	return list(getIntIter())
for _ in range(getInt()):
	n = getInt()
	a = getIntList()
	numOnes = 0
	for item in a:
		if item == 1:
			numOnes += 1
		else:
			break
	else:
		numOnes += 1
	if numOnes % 2 == 0:
		print('First')
	else:
		print('Second')


t = int(input())
for i in range(t):
	n = int(input())
	p1 = []
	e = input()
	for j in e.split():
		v = int(j)
		p1.append(v)
	flag = 0
	for j in p1:
		if j == 1 and flag < n - 1:
			flag += 1
		else:
			break
	if flag % 2 == 0:
		print('First')
	else:
		print('Second')


def solve(arr, n):
	A = [int(0) for i in range(n + 1)]
	B = [int(0) for i in range(n)]
	index = n - 1
	A[n] = n - 1
	while index > 0:
		if arr[index] > 1:
			A[index] = index
		else:
			A[index] = A[index + 1]
		index -= 1
	hash = {1: 2, 2: 1}
	B[0] = 1
	for i in range(1, n):
		if arr[i - 1] > 1 and (arr[i] == 1 and (A[i] - i) % 2 == 0 or arr[i] > 1):
			B[i] = B[i - 1]
		else:
			B[i] = hash[B[i - 1]]
	if B[-1] == 1:
		return 'First'
	return 'Second'
t = int(input())
for _ in range(t):
	n = int(input())
	arr = [int(i) for i in input().split()]
	print(solve(arr, n))


t = int(input())
for w in range(t):
	n = int(input())
	l = [int(i) for i in input().split()]
	c = 0
	c1 = 0
	for i in range(n):
		if l[i] > 1:
			c1 = 1
			break
		else:
			c += 1
	if c % 2 == 1:
		if c1 == 0:
			print('First')
		else:
			print('Second')
	elif c1 == 0:
		print('Second')
	else:
		print('First')


import sys

def who_wins(array):
	one_count = 0
	i = 0
	for i in range(len(array) - 1):
		if array[i] == '1':
			one_count += 1
		else:
			break
	second = one_count % 2
	if second:
		print('Second')
	else:
		print('First')
num_tests = int(next(sys.stdin).strip())
for x in range(num_tests):
	next(sys.stdin)
	array = next(sys.stdin).strip().split(' ')
	who_wins(array)


I = lambda : list(map(int, input().split()))
import sys
import bisect as bi
for tc in range(int(input())):
	(n,) = I()
	l = I()
	cnt = 0
	i = 0
	while i < n and l[i] == 1:
		i += 1
	if i == n:
		if i % 2:
			print('First')
		else:
			print('Second')
	elif i % 2 == 0:
		print('First')
	else:
		print('Second')


from sys import stdout
from collections import defaultdict
t = int(input())
for _ in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	a = 'First'
	b = 'Second'
	c = ''
	k = 0
	for i in l:
		if i == 1:
			k += 1
		else:
			break
	if k == n:
		if k % 2 == 0:
			print(b)
		else:
			print(a)
	elif k % 2 == 0:
		print(a)
	else:
		print(b)


for _ in range(int(input())):
	n = int(input())
	li = list(map(int, input().split()))
	fst = 0
	snd = 0
	f = 0
	for i in range(n):
		if li[i] == 1:
			f += 1
		else:
			break
	if f == n:
		f -= 1
	if f % 2 == 0:
		print('First')
	else:
		print('Second')


import sys, os, io

def rs():
	return sys.stdin.readline().rstrip()

def ri():
	return int(sys.stdin.readline())

def ria():
	return list(map(int, sys.stdin.readline().split()))

def ws(s):
	sys.stdout.write(s + '\n')

def wi(n):
	sys.stdout.write(str(n) + '\n')

def wia(a):
	sys.stdout.write(' '.join([str(x) for x in a]) + '\n')
import math, datetime, functools, itertools
from collections import deque, defaultdict, OrderedDict
import collections

def main():
	starttime = datetime.datetime.now()
	if os.path.exists('input.txt'):
		sys.stdin = open('input.txt', 'r')
		sys.stdout = open('output.txt', 'w')
	for _ in range(ri()):
		n = ri()
		a = ria()
		if a == [1] * n:
			if n % 2 != 0:
				print('First')
			else:
				print('Second')
		else:
			t = 0
			for i in range(n):
				if a[i] != 1:
					break
				else:
					t = 1 - t
			if t == 0:
				print('First')
			else:
				print('Second')
	endtime = datetime.datetime.now()
	time = (endtime - starttime).total_seconds() * 1000
	if os.path.exists('input.txt'):
		print('Time:', time, 'ms')

class FastReader(io.IOBase):
	newlines = 0

	def __init__(self, fd, chunk_size=1024 * 8):
		self._fd = fd
		self._chunk_size = chunk_size
		self.buffer = io.BytesIO()

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, self._chunk_size))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self, size=-1):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, self._chunk_size if size == -1 else size))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

class FastWriter(io.IOBase):

	def __init__(self, fd):
		self._fd = fd
		self.buffer = io.BytesIO()
		self.write = self.buffer.write

	def flush(self):
		os.write(self._fd, self.buffer.getvalue())
		(self.buffer.truncate(0), self.buffer.seek(0))

class FastStdin(io.IOBase):

	def __init__(self, fd=0):
		self.buffer = FastReader(fd)
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')

class FastStdout(io.IOBase):

	def __init__(self, fd=1):
		self.buffer = FastWriter(fd)
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.flush = self.buffer.flush
sys.stdin = FastStdin()
sys.stdout = FastStdout()
main()


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


for i in range(int(input())):
	am = int(input())
	arr = list(map(int, input().split()))
	arr.reverse()
	win = [True] * am
	for i in range(1, am):
		if arr[i] == 1:
			win[i] = not win[i - 1]
		else:
			win[i]
	if win[-1]:
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	ones = a.count(1)
	if ones == n:
		if ones % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		broken = 0
		winner = 0
		for (ind, hip) in enumerate(a):
			if hip != 1:
				if ind % 2 == 0:
					print('First')
				else:
					print('Second')
				broken = 1
				break


for _ in range(int(input())):
	number = int(input())
	count = 0
	list1 = list(map(int, input().split()))
	for j in range(len(list1)):
		if list1[j] != 1:
			break
		else:
			count = count + 1
	if count == number:
		if count % 2 == 0:
			print('Second')
		else:
			print('First')
	elif count % 2 == 0:
		print('First')
	else:
		print('Second')


import math
from decimal import Decimal
import heapq
import copy
import heapq
from collections import deque

def na():
	n = int(input())
	b = [int(x) for x in input().split()]
	return (n, b)

def nab():
	n = int(input())
	b = [int(x) for x in input().split()]
	c = [int(x) for x in input().split()]
	return (n, b, c)

def dv():
	(n, m) = map(int, input().split())
	return (n, m)

def da():
	(n, m) = map(int, input().split())
	a = list(map(int, input().split()))
	return (n, m, a)

def dva():
	(n, m) = map(int, input().split())
	a = [int(x) for x in input().split()]
	b = [int(x) for x in input().split()]
	return (n, m, b)

def eratosthenes(n):
	sieve = list(range(n + 1))
	for i in sieve:
		if i > 1:
			for j in range(i + i, len(sieve), i):
				sieve[j] = 0
	return sorted(set(sieve))

def lol(lst, k):
	k = k % len(lst)
	ret = [0] * len(lst)
	for i in range(len(lst)):
		if i + k < len(lst) and i + k >= 0:
			ret[i] = lst[i + k]
		if i + k >= len(lst):
			ret[i] = lst[i + k - len(lst)]
		if i + k < 0:
			ret[i] = lst[i + k + len(lst)]
	return ret

def nm():
	n = int(input())
	b = [int(x) for x in input().split()]
	m = int(input())
	c = [int(x) for x in input().split()]
	return (n, b, m, c)

def dvs():
	n = int(input())
	m = int(input())
	return (n, m)

def fact(n):
	tc = []
	ans = {}
	d = 2
	while d * d <= n:
		if n % d == 0:
			tc.append(d)
			n //= d
		else:
			d += 1
	if n > 1:
		tc.append(n)
	for i in tc:
		ans[i] = ans.get(i, 0) + 1
	return ans

def how_many(l, r, c):
	m = (l + r) // 2
	if r - l == 1:
		if s[l] == c:
			return 0
		else:
			return 1
	d = s[l:m]
	k1 = (r - l) // 2 - s[l:m].count(c) + how_many(m, r, chr(ord(c) + 1))
	k2 = (r - l) // 2 - s[m:r].count(c) + how_many(l, m, chr(ord(c) + 1))
	return min(k1, k2)
for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	k = a.count(1)
	if k == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		k = 0
		for i in range(n):
			if a[i] != 1:
				break
			k = i + 1
		if k % 2 == 0:
			print('First')
		else:
			print('Second')


import io, os
input = io.BytesIO(os.read(0, os.fstat(0).st_size)).readline
t = int(input())
for _ in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	ind = n + 1
	for j in range(n):
		if arr[j] > 1:
			ind = j + 1
			break
	if ind == n + 1:
		ind -= 1
		if ind % 2 == 0:
			print('Second')
		else:
			print('First')
	elif ind % 2 == 1:
		print('First')
	else:
		print('Second')


def func():
	n = int(input())
	arr = [int(i) for i in input().split()]
	c1 = 0
	for i in arr:
		if i == 1:
			c1 += 1
	if c1 == n:
		if n % 2 == 1:
			print('First')
		else:
			print('Second')
	else:
		win = 'First'
		curr = 'First'
		for i in range(n):
			if arr[i] == 1:
				if curr == 'First':
					curr = 'Second'
				else:
					curr = 'First'
			elif arr[i] > 1:
				if curr == 'First':
					win = 'First'
				else:
					win = 'Second'
				break
			elif curr == 'First':
				curr = 'Second'
			else:
				curr = 'First'
		print(win)
t = int(input())
for i in range(t):
	func()


for testcase in range(int(input())):
	input()
	piles = list(map(int, input().split()))
	n = False
	for p in piles[::-1]:
		if p == 1:
			n = not n
		else:
			n = True
	print('First' if n else 'Second')


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	flag = 0
	ones = 0
	for i in range(n):
		if a[i] == 1 and flag == 0:
			ones += 1
		else:
			flag = 1
	if ones == 0:
		print('First')
	elif ones == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif ones < n:
		if ones % 2 == 0:
			print('First')
		else:
			print('Second')


t = int(input())
for _ in range(t):
	n = int(input())
	l = [int(x) for x in input().split()]
	l_sub = set(l)
	if l_sub == {1}:
		if len(l) % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		total = 0
		for i in range(len(l)):
			if l[i] != 1:
				break
			total += 1
		if total % 2 == 0:
			print('First')
		else:
			print('Second')


for _ in range(int(input())):
	n = input()
	arr = input().split()
	idx = 0
	for v in arr:
		if v != '1':
			break
		idx += 1
	if idx != len(arr):
		print('First' if (idx + 1) % 2 == 1 else 'Second')
	else:
		print('First' if len(arr) % 2 == 1 else 'Second')


T = int(input())
for _ in range(T):
	n = int(input())
	arr = list(map(int, input().split()))
	if n == 1:
		print('First')
	else:
		flag = True
		for i in range(n):
			if arr[i] > 1:
				x = i + 1
				flag = False
				break
		if flag:
			if n % 2 == 0:
				print('Second')
			else:
				print('First')
		elif x % 2 == 0:
			print('Second')
		else:
			print('First')


def solve():
	n = int(input())
	l = [int(x) for x in input().split()]
	if len(l) == 1:
		print('First')
		return
	for i in range(len(l)):
		if l[i] > 1:
			if (i + 1) % 2 == 0:
				print('Second')
			else:
				print('First')
			return
	if len(l) % 2 == 0:
		print('Second')
	else:
		print('First')
	return
t = int(input())
for _ in range(t):
	solve()


for i in range(int(input())):
	n = int(input())
	s = [int(x) for x in input().split()]
	for (j, k) in enumerate(s):
		if k > 1:
			break
	if j % 2 == 0:
		print('First')
	else:
		print('Second')


for t in range(int(input())):
	n = int(input())
	a = [int(n) for n in input().split()]
	if n == 1:
		print('First')
		continue
	elif a[0] == 1:
		loser = 'F'
		for i in range(1, len(a) - 1):
			if a[i] == 1:
				if loser == 'F':
					loser = 'S'
				else:
					loser = 'F'
			else:
				break
	else:
		loser = 'S'
	if loser == 'F':
		print('Second')
	else:
		print('First')


for tt in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	chn = 'f'
	if len(list(set(l))) == 1 and l[0] == 1:
		if len(l) % 2 == 0:
			print('Second')
		else:
			print('First')
		continue
	while 1:
		if len(l) == 0:
			break
		if l[0] == 1:
			if chn == 'f':
				chn = 's'
			else:
				chn = 'f'
		else:
			break
		l.pop(0)
	if chn == 'f':
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	a = [int(x) for x in input().split()]
	if max(a) == 1:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
		continue
	cnt = 0
	for e in a:
		if e == 1:
			cnt += 1
		else:
			break
	if cnt % 2 == 0:
		print('First')
	else:
		print('Second')


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


t = int(input())
for test in range(t):
	n = int(input())
	s = input().split()
	for i in range(n):
		s[i] = int(s[i])
	win = ['Second', 'First']
	turn = True
	found = False
	for i in s[:-1]:
		if i > 1:
			print(win[turn])
			found = True
			break
		turn = not turn
	if not found:
		print(win[turn])


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	winning = 0
	i = 0
	while i < n and a[i] == 1:
		winning += 1
		i += 1
	if i == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif winning % 2 == 0:
		print('First')
	else:
		print('Second')


import sys
input = sys.stdin.buffer.readline
t = int(input())
while t:
	t -= 1
	n = int(input())
	arr = list(map(int, input().split()))
	brr = list(filter(lambda x: x == 1, arr))
	if len(brr) == n:
		if n % 2 == 1:
			print('First')
		else:
			print('Second')
	elif len(brr) == 0:
		print('First')
	else:
		win = -1
		x = [-1, 1]
		if n % 2 == 0:
			win = x[0]
		else:
			win = x[1]
		counter = 0
		for i in range(n):
			if arr[i] == 1:
				counter += 1
			else:
				break
		if counter % 2 == 1:
			print('Second')
		else:
			print('First')


for _ in range(int(input())):
	i_liczb = int(input())
	liczby = input().split()
	if i_liczb == 1:
		print('First')
		continue
	i_1_z_przodu = 0
	for x in liczby:
		if x == '1':
			i_1_z_przodu += 1
		else:
			break
	if i_1_z_przodu == i_liczb:
		if i_1_z_przodu % 2 == 0:
			print('Second')
		else:
			print('First')
		continue
	elif i_1_z_przodu % 2 == 1:
		print('Second')
	else:
		print('First')


test_cases = int(input())
final = []
for i in range(test_cases):
	n = int(input())
	l1 = [int(x) for x in input().split()]
	count = 0
	for j in range(len(l1)):
		if l1[j] == 1:
			count += 1
		else:
			break
	if count != len(l1):
		if count % 2 == 0:
			final.append('First')
		else:
			final.append('Second')
	elif count % 2 != 0:
		final.append('First')
	else:
		final.append('Second')
for i in range(len(final)):
	print(final[i])


def solve():
	input()
	a = list(map(int, input().split()))
	winner = 0
	for i in range(len(a)):
		if a[i] > 1:
			print(['First', 'Second'][winner])
			return
		else:
			winner ^= 1
	print(['Second', 'First'][winner])
t = int(input())
for _ in range(t):
	solve()


from sys import stdin
input = stdin.readline
t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().rstrip().split(' ')))
	idx = -1
	for i in range(n):
		if a[i] != 1:
			idx = i
			break
	if idx == -1:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
		continue
	elif idx % 2 == 0:
		print('First')
	else:
		print('Second')


t = int(input())
for _ in range(t):
	n = int(input())
	inp = [int(j) for j in input().split()]
	cntOnes = 0
	for i in range(n):
		if inp[i] != 1:
			break
		if inp[i] == 1:
			cntOnes = cntOnes + 1
	if cntOnes == n and n % 2 == 0:
		print('Second')
		continue
	if cntOnes == n and n % 2 == 1:
		print('First')
		continue
	if cntOnes % 2 == 1:
		print('Second')
	else:
		print('First')


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	if min(a) > 1:
		print('First')
		continue
	wins = [False for i in range(n)]
	for i in range(n - 1, -1, -1):
		if i == n - 1:
			wins[i] = True
			continue
		if wins[i + 1] and a[i] == 1:
			wins[i] = False
		else:
			wins[i] = True
	if wins[0]:
		print('First')
	else:
		print('Second')


inp_test = int(input())
for i in range(inp_test):
	n = int(input())
	list_n = list(map(int, input().split(' ')))
	l = len(list_n)
	if list_n.count(1) == l:
		if l % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		for i in range(l):
			if list_n[i] != 1:
				if (i + 1) % 2 == 0:
					print('Second')
				else:
					print('First')
				break


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


def winner(arr):
	counter = 0
	for i in range(n):
		if arr[i] == 1:
			counter += 1
		else:
			break
	remain_length = n - counter
	if remain_length == 0:
		if n % 2 == 0:
			print('Second')
			return
		else:
			print('First')
			return
	elif counter % 2 == 0:
		print('First')
		return
	else:
		print('Second')
		return
t = int(input())
for i in range(t):
	n = int(input())
	arr = list(map(int, input().strip().split()))
	winner(arr)


t = input()
t = int(t)
while t > 0:
	n = int(input())
	a = list(map(int, input().strip().split()))[:n]
	first = True
	cnt = 0
	for i in a:
		if i == 1:
			cnt += 1
		else:
			break
	if cnt == n:
		if n % 2 == 0:
			first = False
		else:
			first = True
	elif cnt == 0 or cnt % 2 == 0:
		first = True
	else:
		first = False
	if first:
		print('First')
	else:
		print('Second')
	t -= 1


import os
import sys
from io import BytesIO, IOBase
import math

def main():
	pass
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
for xyz in range(0, int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	allone = True
	for i in range(0, n):
		if l[i] != 1:
			allone = False
			break
	if allone:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		cp = -1
		for i in range(0, n):
			if l[i] != 1:
				cp = i
				break
		if cp % 2 == 0:
			print('First')
		else:
			print('Second')


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 math
t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	count = 0
	i = 0
	if a[0] == 1:
		while a[i] == 1 and i < n - 1:
			i += 1
		checker = i % 2
		if i == n:
			if checker == 0:
				print('First')
			else:
				print('Second')
		elif checker == 1:
			print('Second')
		else:
			print('First')
	else:
		print('First')


for j in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	am = 1
	k = 0
	for i in range(n - 1):
		if k == 0 and a[i] == 1:
			am = 3 - am
		elif a[i] > 1:
			k = 1
	if am == 1:
		print('First')
	else:
		print('Second')


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


T = int(input())
for test in range(T):
	input()
	a = [int(u) for u in input().split()]
	a.append(1)
	ans = 0
	for i in a:
		if i == 1:
			ans = not ans
		else:
			break
	if ans == 0:
		print('First')
	else:
		print('Second')


def solve(ls, debug=0):
	n = len(ls)
	win = False
	for i in range(n)[::-1]:
		if win:
			if ls[i] == 1:
				win = False
		else:
			win = True
		if debug:
			print(f'i: {i}, win: {win}')
	return win

def main(istr, ostr):
	t = int(istr.readline())
	for _ in range(t):
		n = int(istr.readline())
		ls = list(map(int, istr.readline().split()))
		result = 'First' if solve(ls) else 'Second'
		print(result, file=ostr)
import sys
main(sys.stdin, sys.stdout)


s1 = 'First'
s2 = 'Second'
for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	if len(l) == 1:
		print(s1)
	elif l.count(1) == len(l) and len(l) & 1:
		print(s1)
	elif l.count(1) == len(l) and len(l) & 1 == 0:
		print(s2)
	elif l[0] > 1:
		print(s1)
	else:
		for i in range(n):
			if l[i] > 1 and i & 1 == 0:
				print(s1)
				break
			elif l[i] > 1 and i & 1:
				print(s2)
				break


t = int(input())
for cases in range(t):
	n = int(input())
	s = input()
	L = [int(item) for item in s.split(' ')]
	if L.count(1) == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		count = 0
		while L[0] == 1:
			L.pop(0)
			count = count + 1
		if count % 2 == 0:
			print('First')
		else:
			print('Second')


t = int(input())
for p in range(t):
	n = int(input())
	ara = list(map(int, input().strip().split()))
	ones = flag = 0
	for i in ara:
		if i == 1 and flag == 0:
			ones += 1
		else:
			flag = 1
	if flag == 1:
		if ones % 2 == 0:
			print('First')
		else:
			print('Second')
	elif ones % 2 == 0:
		print('Second')
	else:
		print('First')


import math
from collections import Counter
try:
	for _ in range(int(input())):
		n = int(input())
		arr = [int(i) for i in input().split()]
		c = arr.count(1)
		if n % 2 == 0 and c == n:
			print('Second')
		elif n % 2 != 0 and c == n:
			print('First')
		else:
			ans = 0
			for i in range(n):
				if arr[i] > 1:
					break
				else:
					ans = 1 - ans
			if ans:
				print('Second')
			else:
				print('First')
except:
	pass


def winner(n, a):
	if a == [1] * n:
		if n % 2 == 0:
			return 'Second'
		else:
			return 'First'
	x = a.count(1)
	if x == 0:
		return 'First'
	for i in range(n):
		if a[i] != 1:
			k = i
			break
	if i % 2 != 0:
		return 'Second'
	else:
		return 'First'
t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	print(winner(n, a))


def solve(n, arr):
	one = []
	if arr.count(1) == len(arr):
		if len(arr) % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		for i in arr:
			if i == 1:
				one.append(i)
			else:
				break
		if len(one) % 2 == 0:
			print('First')
		else:
			print('Second')
t = int(input())
for i in range(t):
	n = input()
	arr = list(map(int, input().split()))
	solve(n, arr)


for _ in range(int(input())):
	piles = int(input())
	arr = [int(ele) for ele in input().split(' ')]
	i = 0
	while i < piles and arr[i] == 1:
		i += 1
	if i == piles:
		i += 1
	if i % 2 == 0:
		print('First')
	else:
		print('Second')


def main():
	t = int(input())
	for _ in range(t):
		n = int(input())
		a = list(map(int, input().split()))
		flag = True
		if sum(a) == n:
			if n % 2 == 0:
				print('Second')
			else:
				print('First')
			continue
		for (i, e) in enumerate(a):
			if e == 1:
				if flag == True:
					flag = False
				else:
					flag = True
			else:
				break
		if flag:
			print('First')
		else:
			print('Second')
main()


import sys
input = sys.stdin.readline

def inp():
	return int(input())

def inlt():
	return list(map(int, input().split()))

def insr():
	s = input()
	return list(s[:len(s) - 1])

def invr():
	return map(int, input().split())

def get_winner(board):
	ones_in_front = 0
	all_ones = True
	for item in board:
		if item == 1 and all_ones == True:
			ones_in_front = ones_in_front + 1
		if item != 1:
			all_ones = False
	if all_ones and len(board) % 2 == 0:
		return 'Second'
	elif all_ones and len(board) % 2 != 0:
		return 'First'
	if not all_ones and ones_in_front % 2 == 0:
		return 'First'
	elif not all_ones and ones_in_front % 2 != 0:
		return 'Second'
	raise NotImplementedError('Not good')
num_cases = inp()
for _ in range(num_cases):
	board_size = inp()
	board = inlt()
	result = get_winner(board)
	print(result)


for i in range(int(input())):
	n = int(input())
	s = input().split()
	bol = True
	turn = 0
	for i in range(n):
		if int(s[i]) == 1 and bol:
			turn += 1
		else:
			bol = False
	if bol:
		if turn % 2 == 0:
			print('Second')
		else:
			print('First')
	elif turn % 2 == 0:
		print('First')
	else:
		print('Second')


from sys import stdin, stdout
import sys
import math
import itertools
sys.setrecursionlimit(10 ** 6)

def game(a, n):
	if a[0] != 1 or n == 1:
		return 'First'
	c = 0
	for i in range(0, n):
		if a[i] == 1:
			c += 1
		else:
			break
	if c == n:
		if c & 1:
			return 'First'
		else:
			return 'Second'
	elif c & 1:
		return 'Second'
	else:
		return 'First'

def main():
	t = int(stdin.readline().strip())
	for i in range(1, t + 1):
		n = int(stdin.readline().strip())
		arr = [int(x) for x in stdin.readline().strip().split()]
		ans = game(arr, n)
		stdout.write(ans + '\n')
main()


from sys import stdin
input = stdin.readline
lines = int(input())
for i in range(lines):
	x = int(input())
	y = list(map(int, input().split()))
	if 1 not in y:
		print('First')
	else:
		counter = 0
		for j in range(x):
			if y[j] != 1:
				break
			counter += 1
		if counter == x:
			if counter % 2 == 0:
				print('Second')
			else:
				print('First')
		elif counter % 2 == 0:
			print('First')
		else:
			print('Second')


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	for (j, k) in enumerate(a):
		if k > 1:
			break
	if j % 2 == 0:
		print('First')
	else:
		print('Second')


def pile(l):
	if len(l) == 1:
		return 0
	count = 0
	for i in range(len(l)):
		if l[i] == 1:
			count += 1
		elif count % 2 == 0:
			return 0
		else:
			return 1
	if count % 2 == 0:
		return 1
	else:
		return 0
t = int(input())
for _ in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	c = pile(l)
	if c == 0:
		print('First')
	else:
		print('Second')


t = int(input())
while t:
	t -= 1
	n = int(input())
	l1 = list(map(int, input().split()))
	ans = 1
	for i in range(n):
		if i == n - 1:
			break
		if l1[i] == 1:
			ans = 1 - ans
		else:
			break
	if ans == 1:
		print('First')
	else:
		print('Second')


t = int(input())
for _ in range(t):
	n = int(input())
	a = [int(x) for x in input().split()]
	p = -1
	for i in a:
		if i >= 2:
			p = -p
			break
		else:
			p = -p
	if p != -1:
		print('First')
	else:
		print('Second')


def f(l):
	c = 0
	for i in l:
		if i == 1:
			c += 1
		else:
			break
	if all((i == 1 for i in l)):
		if len(l) % 2:
			print('First')
		else:
			print('Second')
	elif c % 2 == 0:
		print('First')
	else:
		print('Second')
t = int(input())
for _ in range(t):
	input()
	l = [int(i) for i in input().split()]
	f(l)


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


for i in range(int(input())):
	n = int(input())
	l = [int(num) for num in input().split()]
	k = -1
	for i in range(n):
		if l[i] > 1:
			k = i
			break
	if k != -1:
		if k % 2 != 0:
			print('Second')
		else:
			print('First')
	elif n % 2 == 0:
		print('Second')
	else:
		print('First')


for _ in range(int(input())):
	n = int(input())
	a = [int(i) for i in input().split()]
	temp = a.count(1)
	if temp == 0:
		print('First')
	else:
		(f, s) = (True, False)
		for i in a:
			if i != 1:
				if f:
					print('First')
				else:
					print('Second')
				break
			f = not f
			s = not s
		else:
			if not f:
				print('First')
			else:
				print('Second')


for _ in range(int(input())):
	n = int(input())
	a = [int(i) for i in input().split()]
	(first, second) = (1, 2)
	i = 0
	while i < n - 1 and a[i] == 1:
		i += 1
		(first, second) = (second, first)
	print('First' if first == 1 else 'Second')


import sys

def play(stones):
	stones_simple = []
	s = 0
	while s < len(stones):
		if s + 1 < len(stones) and stones[s] == 1 and (stones[s + 1] == 1):
			s += 2
			continue
		stones_simple.append(stones[s])
		s += 1
	if not stones_simple:
		print('Second')
	elif len(stones_simple) == 1 and stones_simple[0] == 1:
		print('First')
	elif stones_simple[0] == 1:
		print('Second')
	else:
		print('First')

def play2(stones):
	ones = 0
	other = False
	for s in stones:
		if s == 1:
			ones += 1
		elif s != 1:
			other = True
			break
	if ones % 2 == 0 and other is False:
		print('Second')
	elif ones % 2 == 1 and other is False:
		print('First')
	elif ones % 2 == 0 and other is True:
		print('First')
	else:
		print('Second')
t = int(input())
i = 0
for line in sys.stdin:
	if i == 0:
		n = int(line)
	elif i == 1:
		stones = [int(x) for x in line.split()]
		play2(stones)
	i = 1 - i


for s in [*open(0)][2::2]:
	a = (s + '1').split()
	i = 0
	while i < len(a) and '1' == a[i]:
		i += 1
	print('FSiercsotn d'[i % 2::2])


def solve(n, arr):
	i = 0
	while i < n and arr[i] == 1:
		i += 1
	if i == n:
		if n % 2 == 0:
			return 'Second'
		else:
			return 'First'
	elif i % 2 != 0:
		return 'Second'
	else:
		return 'First'
t = int(input())
results = list()
for _ in range(0, t):
	n = int(input())
	arr = [int(x) for x in input().split(' ')]
	results.append(solve(n, arr))
for result in results:
	print(result)


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	k = 0
	while k < n and l[k] == 1:
		k += 1
	if (k == n) ^ (k % 2 == 0):
		print('First')
	else:
		print('Second')


test = int(input())

def solve():
	n = int(input())
	arr = [int(i) for i in input().split()]
	ans = 0
	for i in range(n):
		if arr[i] == 1:
			ans = (ans + 1) % 2
		elif ans == 0:
			print('First')
			return
		else:
			print('Second')
			return
	if ans == 1:
		print('First')
		return
	else:
		print('Second')
		return
while test:
	solve()
	test -= 1


for g in [*open(0)][2::2]:
	i = 0
	d = (g + '1 *').split()
	while '1' == d[i]:
		i += 1
	print('FSiercsotn d'[i % 2::2])


t = int(input())
for test_case in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	flag = False
	L = len(a)
	for i in range(L):
		x = a[L - i - 1]
		if flag:
			if x > 1:
				flag = True
			if x == 1:
				flag = False
		else:
			flag = True
	if flag:
		print('First')
	else:
		print('Second')


for i in range(int(input())):
	n = int(input())
	dp = [[None for i in range(3)] for i in range(n + 10)]
	arr = [int(i) for i in input().split(' ')]
	pl = 0
	for i in arr:
		if i == 1:
			pl ^= 1
		else:
			if pl == 0:
				print('First')
			else:
				print('Second')
			break
	else:
		pl = pl ^ 1
		if pl == 0:
			print('First')
		else:
			print('Second')


for _ in range(int(input())):
	n = int(input())
	stones = [*map(int, input().split())]
	for i in range(n):
		if stones[i] != 1:
			break
	print('Second') if i & 1 else print('First')


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


t = int(input())
for i in range(t):
	m = input()
	l = [int(_) for _ in input().split()]
	winner = 0
	for i in l:
		if i == 1:
			winner = 1 - winner
		else:
			break
	else:
		winner = 1 - winner
	print('First' if winner == 0 else 'Second')


import sys

def get_list():
	return list(map(int, sys.stdin.readline().split()))

def get_string():
	return input()

def get_int():
	return int(input())

def get_ints():
	return map(int, sys.stdin.readline().split())
for _ in range(get_int()):
	n = int(input())
	arr = get_list()
	cnt = 0
	if arr[0] == 1 and len(set(arr)) == 1:
		if len(arr) % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		for i in range(n):
			if arr[i] == 1:
				cnt += 1
			else:
				break
		if cnt % 2 == 0:
			print('First')
		else:
			print('Second')


from sys import stdin
T = int(stdin.readline())
for _ in range(T):
	cnt = 0
	N = int(stdin.readline())
	li = list(map(int, stdin.readline().split()))
	for i in li:
		if i == 1:
			cnt += 1
		else:
			break
	if cnt % 2 == 0:
		if cnt == N:
			print('Second')
		else:
			print('First')
	elif cnt == N:
		print('First')
	else:
		print('Second')


import sys
import math
import collections
from sys import stdin, stdout, setrecursionlimit
import bisect as bs
setrecursionlimit(2 ** 20)
M = 10 ** 9 + 7

def solve():
	n = int(stdin.readline())
	a = list(map(int, stdin.readline().split()))
	ans = 0
	if n == 1:
		print('First')
		return
	chk = False
	for i in range(n):
		if a[i] != 1:
			chk = True
			if i % 2 == 0:
				ans = 0
			else:
				ans = 1
			break
	if chk == True:
		if ans == 0:
			print('First')
		else:
			print('Second')
	elif n % 2 == 1:
		print('First')
	else:
		print('Second')
t = 1
t = int(stdin.readline())
for _ in range(t):
	solve()


def Solve():
	for t in range(int(input())):
		n = int(input())
		s = input().split()
		if s.count('1') == n:
			print('Second' if n % 2 == 0 else 'First')
		else:
			for i in range(n):
				if s[i] != '1':
					break
			i += 1
			print('Second' if i % 2 == 0 else 'First')
Solve()


def testCase():
	n = int(input())
	piles = list(map(int, input().split()))
	for i in range(n):
		if piles[i] > 1:
			if i % 2 == 0:
				return True
			else:
				return False
		elif i == n - 1:
			if i % 2 == 0:
				return True
			else:
				return False
rez = []
t = int(input())
for i in range(t):
	rez.append(testCase())
for r in rez:
	if r:
		print('First')
	else:
		print('Second')


for k in range(int(input())):
	n = int(input())
	l = [int(p) for p in input().split()]
	z = -1
	for i in range(len(l)):
		if l[i] > 1:
			z = i
			break
	if z != -1:
		if z % 2 == 0:
			print('First')
		else:
			print('Second')
	elif n % 2 == 0:
		print('Second')
	else:
		print('First')


tc = int(input())
for _ in range(tc):
	n = int(input())
	a = list(map(int, input().split()))
	bruh = True
	if n == 1:
		print('First')
	else:
		for i in range(n - 1):
			pog = i + 1
			if a[i] > 1:
				bruh = False
				break
		if bruh and pog % 2 == 0:
			print('First')
		elif bruh or pog % 2 == 0:
			print('Second')
		else:
			print('First')


t = int(input())
for it in range(t):
	n = int(input())
	a = [int(i) for i in input().split()]
	i = 0
	while i < n and a[i] == 1:
		i += 1
	if i == n:
		print('First' if i % 2 else 'Second')
	else:
		print('Second' if i % 2 else 'First')


n = int(input())
for i in range(n):
	num = int(input())
	piles = [int(i) for i in input().split()]
	(cnt, flag) = (0, 0)
	for i in range(num):
		if piles[i] == 1:
			cnt += 1
		else:
			flag = 1
			print('First') if cnt % 2 == 0 else print('Second')
			break
	if flag:
		continue
	else:
		print('First') if cnt % 2 == 1 else print('Second')


t = int(input())
for _ in range(t):
	n = int(input())
	arr = [int(i) for i in input().split()]
	if n == 1:
		print('First')
	else:
		win = 0
		for i in range(n - 1):
			if arr[i] == 1:
				win = (win + 1) % 2
			else:
				break
		if win == 0:
			print('First')
		else:
			print('Second')


from collections import Counter
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('Second')
		else:
			print('First')
	elif c % 2 == 0:
		print('First')
	else:
		print('Second')


from __future__ import division, print_function
import os, sys
from io import BytesIO, IOBase
if sys.version_info[0] < 3:
	from __builtin__ import xrange as range
	from future_builtins import ascii, filter, hex, map, oct, zip

def ii():
	return int(input())

def si():
	return input()

def mi():
	return map(int, input().strip().split(' '))

def msi():
	return map(str, input().strip().split(' '))

def li():
	return list(mi())

def dmain():
	sys.setrecursionlimit(1000000)
	threading.stack_size(1024000)
	thread = threading.Thread(target=main)
	thread.start()
import sys
input = sys.stdin.readline
scanner = lambda : int(input())
string = lambda : input().rstrip()
get_list = lambda : list(read())
read = lambda : map(int, input().split())
get_float = lambda : map(float, input().split())

def ceil(x):
	if x != int(x):
		x = int(x) + 1
	return x

def factorial(x, m):
	val = 1
	while x > 0:
		val = val * x % m
		x -= 1
	return val

def fact(x):
	val = 1
	while x > 0:
		val *= x
		x -= 1
	return val

def swaparr(arr, a, b):
	temp = arr[a]
	arr[a] = arr[b]
	arr[b] = temp

def gcd(a, b):
	if b == 0:
		return a
	return gcd(b, a % b)

def lcm(a, b):
	return a * b // math.gcd(a, b)

def is_integer(n):
	return math.ceil(n) == math.floor(n)

def nCr(n, k):
	if k > n:
		return 0
	if k > n - k:
		k = n - k
	res = 1
	for i in range(k):
		res = res * (n - i)
		res = res / (i + 1)
	return int(res)

def primefs(n):
	primes = {}
	while n % 2 == 0 and n > 0:
		primes[2] = primes.get(2, 0) + 1
		n = n // 2
	for i in range(3, int(n ** 0.5) + 2, 2):
		while n % i == 0 and n > 0:
			primes[i] = primes.get(i, 0) + 1
			n = n // i
	if n > 2:
		primes[n] = primes.get(n, 0) + 1
	return primes

def power(x, y, p):
	res = 1
	x = x % p
	if x == 0:
		return 0
	while y > 0:
		if y & 1 == 1:
			res = res * x % p
		y = y >> 1
		x = x * x % p
	return res

def swap(a, b):
	temp = a
	a = b
	b = temp
	return (a, b)

def find(x, link):
	p = x
	while p != link[p]:
		p = link[p]
	while x != p:
		nex = link[x]
		link[x] = p
		x = nex
	return p

def union(x, y, link, size):
	x = find(x, link)
	y = find(y, link)
	if size[x] < size[y]:
		(x, y) = swap(x, y)
	if x != y:
		size[x] += size[y]
		link[y] = x

def sieve(n):
	prime = [True for i in range(n + 1)]
	(prime[0], prime[1]) = (False, False)
	p = 2
	while p * p <= n:
		if prime[p] == True:
			for i in range(p * p, n + 1, p):
				prime[i] = False
		p += 1
	return prime

def phi(n):
	result = n
	p = 2
	while p * p <= n:
		if n % p == 0:
			while n % p == 0:
				n = n // p
			result = result * (1.0 - 1.0 / float(p))
		p = p + 1
	if n > 1:
		result = result * (1.0 - 1.0 / float(n))
	return int(result)

def is_prime(n):
	if n == 0:
		return False
	if n == 1:
		return True
	for i in range(2, int(n ** (1 / 2)) + 1):
		if not n % i:
			return False
	return True

def next_prime(n, primes):
	while primes[n] != True:
		n += 1
	return n
MAXN = int(100000.0 + 5)

def spf_sieve():
	spf[1] = 1
	for i in range(2, MAXN):
		spf[i] = i
	for i in range(4, MAXN, 2):
		spf[i] = 2
	for i in range(3, ceil(MAXN ** 0.5), 2):
		if spf[i] == i:
			for j in range(i * i, MAXN, i):
				if spf[j] == j:
					spf[j] = i
spf = [0 for i in range(MAXN)]

def factoriazation(x):
	res = []
	for i in range(2, int(x ** 0.5) + 1):
		while x % i == 0:
			res.append(i)
			x //= i
	if x != 1:
		res.append(x)
	return res

def factors(n):
	res = []
	for i in range(1, int(n ** 0.5) + 1):
		if n % i == 0:
			res.append(i)
			res.append(n // i)
	return list(set(res))

def int_array():
	return list(map(int, input().strip().split()))

def float_array():
	return list(map(float, input().strip().split()))

def str_array():
	return input().strip().split()

def binary_search(low, high, w, h, n):
	while low < high:
		mid = low + (high - low) // 2
		if check(mid, w, h, n):
			low = mid + 1
		else:
			high = mid
	return low

def check(moves, n):
	val = (moves + 1) // 2
	rem = moves - val
	sol = (val + 1) * (rem + 1)
	return sol < n

def sortSecond(val):
	return val[1]
MOD = int(1000000000.0) + 7
CMOD = 998244353
INF = float('inf')
NINF = -float('inf')
alphs = 'abcdefghijklmnopqrstuvwxyz'
from itertools import permutations
import math
import bisect as bis
import random
import sys
import collections as collect
import functools as fnt

def solve():
	n = scanner()
	a = get_list()
	c = 0
	for x in a:
		if x != 1:
			break
		c += 1
	if c == 0:
		print('First')
		return
	elif c == n:
		if c % 2 == 0:
			print('Second')
		else:
			print('First')
	elif c % 2 == 0:
		print('First')
	else:
		print('Second')
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')

def print(*args, **kwargs):
	(sep, file) = (kwargs.pop('sep', ' '), kwargs.pop('file', sys.stdout))
	at_start = True
	for x in args:
		if not at_start:
			file.write(sep)
		file.write(str(x))
		at_start = False
	file.write(kwargs.pop('end', '\n'))
	if kwargs.pop('flush', False):
		file.flush()
if sys.version_info[0] < 3:
	(sys.stdin, sys.stdout) = (FastIO(sys.stdin), FastIO(sys.stdout))
else:
	(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')
t = scanner()
for i in range(t):
	solve()


T = int(input())
for i in range(T):
	N = int(input())
	A = list(map(int, input().split()))
	ones = A.count(1)
	if ones == N:
		if N & 1 == 0:
			ans = 'Second'
		else:
			ans = 'First'
	else:
		ct = 0
		for j in range(N):
			if A[j] != 1:
				break
			else:
				ct += 1
		if ct & 1 == 0:
			ans = 'First'
		else:
			ans = 'Second'
	print(ans)


from collections import defaultdict as dd
import sys
input = sys.stdin.readline
t = int(input())
while t:
	n = int(input())
	l = list(map(int, input().split()))
	i = 0
	curr = 0
	while i < n - 1 and l[i] == 1:
		curr = 1 - curr
		i += 1
	if curr == 0:
		print('First')
	else:
		print('Second')
	t -= 1


import sys
input = sys.stdin.readline
for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	count1 = 0
	for i in range(n - 1):
		if l[i] == 1:
			count1 += 1
		else:
			break
	if count1 % 2:
		print('Second')
	else:
		print('First')


def find(A):
	A = A[::-1]
	dp = [0 for i in range(len(A))]
	dp[0] = 1
	for i in range(1, len(A)):
		if A[i] > 1:
			dp[i] = 1
		elif dp[i - 1] == 0:
			dp[i] = 1
		else:
			dp[i] = 0
	return dp[-1]
ANS = []
for _ in range(int(input())):
	input()
	A = list(map(int, input().strip().split()))
	ans = find(A)
	if ans == 1:
		ANS += ['First']
	else:
		ANS += ['Second']
print('\n'.join(ANS))


rep = int(input())
for _ in range(rep):
	n = int(input())
	a = list(map(int, input().split()))
	first = True
	for i in range(n):
		if not a[i] == 1 or i == n - 1:
			break
		else:
			first = not first
	print('First' if first else 'Second')


def computer(n, array):
	ones = 0
	for i in range(n - 1):
		if array[i] == 1:
			ones += 1
	if ones == n - 1:
		if ones % 2 == 0:
			return 'First'
		else:
			return 'Second'
	elif array[0] != 1:
		return 'First'
	elif array[0] == 1 and array[1] != 1:
		return 'Second'
	else:
		consecutive_ones = 0
		for j in array:
			if j == 1:
				consecutive_ones += 1
			else:
				break
		if consecutive_ones % 2 != 0:
			return 'Second'
		else:
			return 'First'
t = int(input())
array = []
for i in range(t):
	a = int(input())
	b = list(map(int, input().split(' ')))
	array.append([a, b])
for x in array:
	print(computer(x[0], x[1]))


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	c = 0
	for i in range(n):
		while l[i] > 0:
			if l[i] > 1:
				if i < n - 1:
					if l[i + 1] == 1:
						j = i + 1
						p = 0
						while j < n - 1:
							if l[j] == 1:
								p += 1
							else:
								break
							j += 1
						if p % 2 == 1:
							l[i] = 0
						else:
							l[i] = 1
					else:
						l[i] = 1
				else:
					l[i] = 0
			else:
				l[i] = 0
			c += 1
	if c % 2 == 0:
		print('Second')
	else:
		print('First')


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(lambda x: int(x), input().split()))
	first_nonforced_index = -1
	for i in range(0, len(a)):
		if a[i] != 1:
			first_nonforced_index = i
			break
	if first_nonforced_index == -1:
		if len(a) % 2 == 0:
			print('Second')
		else:
			print('First')
	elif first_nonforced_index % 2 != 0:
		print('Second')
	else:
		print('First')


from functools import lru_cache

@lru_cache(None)
def Iwillwin(pileNumber, nStones):
	if pileNumber == n - 1:
		return True
	else:
		if nStones > 1 and Iwillwin(pileNumber, 1) == False:
			return True
		if Iwillwin(pileNumber + 1, a[pileNumber + 1]) == False:
			return True
		return False
t = int(input())
for _ in range(t):
	n = int(input())
	a = [int(x) for x in input().split()]
	for i in range(n - 2, -1, -1):
		Iwillwin(i, 1)
	if Iwillwin(0, a[0]):
		print('First')
	else:
		print('Second')
	Iwillwin.cache_clear()


t = int(input())
for i in range(t):
	n = int(input())
	ch = input()
	L = [int(i) for i in ch.split()]
	i = 0
	while i < n and L[i] == 1:
		i += 1
	if i == n:
		i += 1
	if i % 2:
		print('Second')
	else:
		print('First')


from __future__ import division, print_function
from sys import stdin, stdout
import bisect
import math
import heapq
i_m = 9223372036854775807

def inin():
	return int(input())

def stin():
	return input()

def spin():
	return map(int, stin().split())

def lin():
	return list(map(int, stin().split()))

def matrix(n):
	return [list(map(int, input().split())) for i in range(n)]

def count2Dmatrix(i, list):
	return sum((c.count(i) for c in list))

def modinv(n, p):
	return pow(n, p - 2, p)

def GCD(x, y):
	x = abs(x)
	y = abs(y)
	if min(x, y) == 0:
		return max(x, y)
	while y:
		(x, y) = (y, x % y)
	return x

def LCM(x, y):
	return x * y // GCD(x, y)

def Divisors(n):
	l = []
	for i in range(1, int(math.sqrt(n) + 1)):
		if n % i == 0:
			if n // i == i:
				l.append(i)
			else:
				l.append(i)
				l.append(n // i)
	return l
prime = []

def SieveOfEratosthenes(n):
	global prime
	prime = [True for i in range(n + 1)]
	p = 2
	while p * p <= n:
		if prime[p] == True:
			for i in range(p * p, n + 1, p):
				prime[i] = False
		p += 1
	f = []
	for p in range(2, n):
		if prime[p]:
			f.append(p)
	return f
q = []

def dfs(n, d, v, c):
	global q
	v[n] = 1
	x = d[n]
	q.append(n)
	j = c
	for i in x:
		if i not in v:
			f = dfs(i, d, v, c + 1)
			j = max(j, f)
	return j
for _ in range(inin()):
	n = inin()
	a = lin()
	first = 1
	second = 0
	temp = -1
	if a.count(1) == n:
		if n % 2 != 0:
			print('First')
		else:
			print('Second')
		continue
	for i in range(n):
		if a[i] != 1:
			break
		else:
			temp = first
			first = second
			second = temp
	if first == 1:
		print('First')
	elif second == 1:
		print('Second')


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


def main():
	t = int(input())
	for i in range(t):
		n = int(input())
		line = input()
		ln = list(map(int, line.split()))
		cnt1 = 0
		for j in range(n):
			if ln[j] == 1:
				cnt1 += 1
		if n == cnt1:
			if cnt1 % 2 == 0:
				print('Second')
			else:
				print('First')
		else:
			cnt = 0
			for j in range(n):
				if ln[j] == 1:
					cnt += 1
				else:
					break
			if cnt % 2 == 0:
				print('First')
			else:
				print('Second')
main()


for t in range(int(input())):
	n = int(input())
	flag = 0
	ans = 0
	for X in input().split():
		if flag == 0:
			if int(X) == 1:
				ans += 1
			else:
				flag = 1
		else:
			break
	if ans == n:
		if ans % 2 != 0:
			print('First')
		else:
			print('Second')
	elif ans % 2 == 0:
		print('First')
	else:
		print('Second')


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	ans = 0
	cnt = 0
	f = True
	for i in range(n):
		if a[i] == 1:
			cnt += 1
		elif a[i] != 1:
			f = False
			break
	if f == False:
		if cnt == 0:
			ans = 'First'
		elif cnt != 0 and cnt & 1:
			ans = 'Second'
		elif cnt != 0 and cnt % 2 == 0:
			ans = 'First'
	elif cnt & 1:
		ans = 'First'
	else:
		ans = 'Second'
	print(ans)


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
	elif 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())
i = 0
winner = 1

def switch(winner):
	if winner == 1:
		winner = 2
	else:
		winner = 1
	return winner
while i < t:
	number_of_piles = int(input())
	pile = [int(x) for x in input().split()]
	check_set = set(pile)
	if check_set == {1}:
		if number_of_piles % 2 == 0:
			winner = 2
		else:
			winner = 1
	elif number_of_piles == 1:
		winner = 1
	elif number_of_piles > 1:
		for player in pile:
			if player == 1:
				winner = switch(winner)
			else:
				break
	if winner == 1:
		print('First')
	else:
		print('Second')
	winner = 1
	i += 1


from collections import Counter
T = int(input())
for t in range(T):
	win = 1
	flag = 0
	p = int(input())
	l = list(map(int, input().split()))
	for i in range(p):
		if l[i] == 1 and i != p - 1:
			win = (win + 1) % 2
		else:
			win = i % 2
			break
	if win == 0:
		print('First')
	else:
		print('Second')


from sys import stdin, stdout
import math
from itertools import permutations, combinations
from collections import defaultdict
from bisect import bisect_left
from bisect import bisect_right

def L():
	return list(map(int, stdin.readline().split()))

def In():
	return map(int, stdin.readline().split())

def I():
	return int(stdin.readline())
P = 1000000007

def main():
	for t in range(I()):
		n = I()
		arr = L()
		sm = 0
		for i in arr:
			if i > 1:
				break
			else:
				sm += 1
		if sm == n:
			if sm % 2:
				print('First')
			else:
				print('Second')
		elif sm % 2:
			print('Second')
		else:
			print('First')
main()


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	flag = True
	for i in range(n):
		if a[i] == 1:
			flag = not flag
		else:
			flag = not flag
			break
	if flag == False:
		print('First')
	else:
		print('Second')


import sys, os
from io import BytesIO, IOBase
import collections, itertools, bisect, heapq, math, string
from decimal import *
BUFSIZE = 8192
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')

def main():
	t = int(input())
	for i in range(t):
		n = int(input())
		a = list(map(int, input().split()))
		sa = a[::-1]
		if n == 1:
			print('First')
			continue
		f = True
		for j in range(1, len(sa)):
			if sa[j] == 1:
				f = not f
			else:
				f = True
		if f:
			print('First')
		else:
			print('Second')
main()


import sys
RI = lambda : [int(x) for x in sys.stdin.readline().strip().split()]
rw = lambda : sys.stdin.readline().strip().split()
ri = lambda : int(sys.stdin.readline().strip())
rs = lambda : sys.stdin.readline().strip()
from collections import defaultdict as df
from math import *
t = ri()
for _ in range(t):
	n = ri()
	l = RI()
	i = 0
	t = 0
	while i < n and l[i] == 1:
		t ^= 1
		i += 1
	if t == 0 and i < n or (i == n and t == 1):
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	if n == 1:
		print('First')
		continue
	s = 'F'
	t = 'S'
	li = []
	for i in range(n - 1, -1, -1):
		if i != n - 1 and l[i] == 1:
			(s, t) = (t, s)
		elif i != n - 1 and s == 'S':
			(s, t) = (t, s)
	if s == 'F':
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	l = [int(j) for j in input().split()]
	ind = n
	for i in range(n):
		if l[i] > 1:
			ind = i
			break
	if ind == n and n % 2 == 0:
		print('Second')
	elif ind == n and n % 2 != 0:
		print('First')
	elif ind % 2 == 0:
		print('First')
	else:
		print('Second')


def nim(arr, n):
	ctr = 0
	for i in range(n):
		if arr[i] == 1:
			ctr += 1
		else:
			ctr += 1
			break
	if ctr % 2 == 0:
		print('Second')
	else:
		print('First')
t = int(input())
for i in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	nim(arr, n)


t = int(input())
for _ in range(t):
	n = int(input())
	A = list(map(int, input().split()))
	if n == 1:
		print('First')
		continue
	dp = [0] * n
	dp[n - 1] = 1
	for i in reversed(range(n - 1)):
		if A[i] != 1:
			if dp[i + 1] == 1:
				dp[i] = dp[i + 1]
			else:
				dp[i] = 1 - dp[i + 1]
		else:
			dp[i] = 1 - dp[i + 1]
	if dp[0] == 1:
		print('First')
	else:
		print('Second')


import sys
from os import path
if path.exists('input.txt'):
	sys.stdin = open('input.txt', 'r')
	sys.stdout = open('output.txt', 'w')
get_int = lambda : int(input())
get_ints = lambda : map(int, input().split())
get_ints_list = lambda : list(get_ints())
t = get_int()
for _ in range(t):
	n = get_int()
	a = get_ints_list()
	w = 0
	o = 0
	for i in range(n - 1):
		if a[i] == 1:
			o += 1
		else:
			break
	print('First' if o % 2 == 0 else 'Second')


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


tests = int(input())
for test in range(tests):
	n = int(input())
	a = list(map(int, input().split()))
	big = n + 1
	for i in range(n):
		if a[i] > 1:
			big = i
			break
	if big % 2 == 1:
		print('Second')
	else:
		print('First')


from bisect import *
for _ in range(int(input())):
	n = input()
	a = list(map(int, input().split()))
	ok = False
	if len(a) == 1:
		ok = True
	elif set(a) == {1}:
		if len(a) % 2 == 0:
			ok = False
		else:
			ok = True
	elif a[0] > 1:
		ok = True
	else:
		for i in range(len(a)):
			if a[i] != 1:
				if i % 2 != 0:
					ok = False
				else:
					ok = True
				break
	if ok:
		print('First')
	else:
		print('Second')


def fact(x):
	if x == 0:
		return 1
	else:
		return x * fact(x - 1)

def lower_bound(li, num):
	answer = len(li) - 1
	start = 0
	end = len(li) - 1
	while start <= end:
		middle = (end + start) // 2
		if li[middle] >= num:
			answer = middle
			end = middle - 1
		else:
			start = middle + 1
	return answer

def upper_bound(li, num):
	answer = -1
	start = 0
	end = len(li) - 1
	while start <= end:
		middle = (end + start) // 2
		if li[middle] <= num:
			answer = middle
			start = middle + 1
		else:
			end = middle - 1
	return answer

def abs(x):
	return x if x >= 0 else -x

def binary_search(li, val, lb, ub):
	ans = 0
	while lb <= ub:
		mid = (lb + ub) // 2
		if li[mid] > val:
			ub = mid - 1
		elif val > li[mid]:
			lb = mid + 1
		else:
			ans = 1
			break
	return ans

def sieve_of_eratosthenes(n):
	ans = []
	arr = [1] * (n + 1)
	(arr[0], arr[1], i) = (0, 0, 2)
	while i * i <= n:
		if arr[i] == 1:
			j = i + i
			while j <= n:
				arr[j] = 0
				j += i
		i += 1
	for k in range(n):
		if arr[k] == 1:
			ans.append(k)
	return ans

def nc2(x):
	if x == 1:
		return 0
	else:
		return x * (x - 1) // 2

def kadane(x):
	sum_so_far = 0
	current_sum = 0
	for i in x:
		current_sum += i
		if current_sum < 0:
			current_sum = 0
		else:
			sum_so_far = max(sum_so_far, current_sum)
	return sum_so_far

def mex(li):
	check = [0] * 1001
	for i in li:
		check[i] += 1
	for i in range(len(check)):
		if check[i] == 0:
			return i

def sumdigits(n):
	ans = 0
	while n != 0:
		ans += n % 10
		n //= 10
	return ans

def product(li):
	ans = 1
	for i in li:
		ans *= i
	return ans

def maxpower(n, k):
	cnt = 0
	while n > 1:
		cnt += 1
		n //= k
	return cnt
from math import *
from collections import deque
max_steps = 100005
for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	ans = 0
	for i in a:
		if i == 1:
			ans += 1
		else:
			break
	if ans == n:
		ans += 1
	if ans & 1 == 0:
		print('First')
	else:
		print('Second')


import sys
import os, io
input = io.BytesIO(os.read(0, os.fstat(0).st_size)).readline
input_all = io.BytesIO(os.read(0, os.fstat(0).st_size)).read

def read_int():
	return map(int, input().split())

def read_list():
	return list(map(int, input().split()))

def print_list(l):
	print(' '.join(map(str, l)))
N = int(input())
for i in range(N):
	n = int(input())
	a = read_list()
	count = 0
	for i in a:
		if i == 1:
			count += 1
		else:
			break
	if count == n:
		if n & 1 == 0:
			print('Second')
		else:
			print('First')
	elif count & 1 == 0:
		print('First')
	else:
		print('Second')


for t in range(int(input())):
	input()
	w = True
	for x in input().split()[-2::-1]:
		w = not w if x == '1' else True
	print('First' if w else 'Second')


T = int(input())
while T:
	n = int(input())
	A = list(map(int, input().split()))
	c = 0
	i = 0
	while i < n and A[i] == 1:
		i = i + 1
		c = 1 - c
	if i == n:
		c = 1 - n % 2
	if c == 0 or n == 1:
		print('First')
	else:
		print('Second')
	T = T - 1


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')


t = int(input())
while t:
	n = int(input())
	l1 = list(map(int, input().split()))
	win = True
	for i in range(len(l1)):
		if l1[i] != 1:
			break
		if i + 1 != len(l1):
			win = not win
		else:
			break
	if win:
		print('First')
	else:
		print('Second')
	t -= 1


import math
import time
from collections import defaultdict, deque
from sys import stdin, stdout
from bisect import bisect_left, bisect_right
t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, stdin.readline().split()))
	ans = 0
	win = [0] * n
	win[-1] = 1
	for i in range(n - 2, -1, -1):
		if a[i] > 1:
			win[i] = 1
		else:
			win[i] = 1 - win[i + 1]
	if win[0] == 1:
		print('First')
	else:
		print('Second')


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))

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()


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


t = int(input())

def solve(a):
	last = 'x'
	cur = 'x'
	for i in range(len(a) - 2, -1, -1):
		cur = 'y' if cur == 'x' else 'x'
		if cur != 'x':
			if a[i] == 1:
				cur = 'y'
			else:
				cur = 'x'
	if cur == last:
		return 'First'
	else:
		return 'Second'
while t > 0:
	n = int(input())
	a = list(map(int, input().split()))
	ans = solve(a)
	print(ans)
	t -= 1


t = int(input())

def main():
	n = int(input())
	a = [int(x) for x in input().split()]
	counter = 0
	for i in a:
		if i == 1:
			counter += 1
		else:
			break
	if counter % 2 == 0:
		if counter == len(a):
			print('Second')
		else:
			print('First')
	elif counter == len(a):
		print('First')
	else:
		print('Second')
for _ in range(t):
	main()


import sys
import math
import heapq
import collections

def inputnum():
	return int(input())

def inputnums():
	return map(int, input().split())

def inputlist():
	return list(map(int, input().split()))

def inputstring():
	return [x for x in input()]

def inputmatrixchar(rows):
	arr2d = [[j for j in input().strip()] for i in range(rows)]
	return arr2d

def inputmatrixint(rows):
	arr2d = []
	for _ in range(rows):
		arr2d.append([int(i) for i in input().split()])
	return arr2d
t = int(input())
for q in range(t):
	n = inputnum()
	a = inputlist()
	ones = 0
	startones = 0
	for i in range(n):
		if a[i] == 1:
			ones += 1
	for i in range(n):
		if a[i] != 1:
			break
		startones += 1
	if n == 1:
		print('First')
		continue
	elif ones == n:
		if ones % 2 == 1:
			print('First')
		else:
			print('Second')
	elif startones % 2 == 1:
		print('Second')
	else:
		print('First')


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


import sys
import os
from collections import Counter, deque, defaultdict
import itertools
import math
import io

def ii():
	return int(input())

def li():
	return list(map(int, input().split()))

def mi():
	return map(int, input().split())

def gcd(x, y):
	while y:
		(x, y) = (y, x % y)
	return x

def check_sorted(a):
	for i in range(len(a) - 1):
		if a[i] > a[i + 1]:
			return False
	return True

def divs(n, start=1):
	divisors = []
	for i in range(start, int(math.sqrt(n) + 1)):
		if n % i == 0:
			if n / i == i:
				divisors.append(i)
			else:
				divisors.extend([i, n // i])
	return divisors

def main():
	for i in range(ii()):
		n = ii()
		a = li()
		sum = 0
		if len(a) == 1:
			print('First')
			continue
		if n % 2 == 0 and a == [1] * n:
			print('Second')
			continue
		if n % 2 == 1 and a == [1] * n:
			print('First')
			continue
		for i in range(n):
			if a[i] != 1:
				sum = i
				break
		if sum & 1:
			print('Second')
		else:
			print('First')
main()


n = int(input())
for i in range(n):
	t = int(input())
	tab = list(map(int, input().split()))
	index = 0
	player = 1
	verif = True
	while (verif == True) & (index != t - 1):
		if index != 0:
			if player == 1:
				player = 2
			else:
				player = 1
		if index != t - 2:
			if tab[index] == 1:
				index = index + 1
			else:
				verif = False
		else:
			if tab[index] == 1:
				if player == 1:
					player = 2
				else:
					player = 1
			index = index + 1
	if player == 2:
		print('Second')
	else:
		print('First')


t = int(input())
for i in range(t):
	n = int(input())
	a = input().split(' ')
	v = 0
	i = int(n - 1)
	while i > 0:
		if int(a[i - 1]) == 1:
			i -= 2
			if i < 0:
				v = 1
			continue
		i -= 1
	if v == 0:
		print('First')
	else:
		print('Second')


from sys import stdin
for case in range(int(stdin.readline())):
	n = int(stdin.readline())
	a = [int(x) for x in stdin.readline().split()]
	if n == 1 or a[0] != 1:
		print('First')
	else:
		i = 0
		while a[i] == 1:
			i += 1
			if i == n - 1:
				break
		if i % 2 == 1:
			print('Second')
		else:
			print('First')


t = int(input())
l = []
for i in range(t):
	n = int(input())
	s = list(map(int, input().split()))
	l.append(s)
for j in l:
	win = 1
	for k in range(0, len(j)):
		if j[k] == 1:
			win = -win
		else:
			win = -win
			break
	if win == -1:
		print('First')
	else:
		print('Second')


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


import sys
sys.setrecursionlimit(2147483647)
input = sys.stdin.readline

def calc(arr):
	ans = 0
	for i in range(len(arr) - 1):
		if arr[i] == 1:
			ans = (ans + 1) % 2
		else:
			break
	if ans == 0:
		return 'First'
	else:
		return 'Second'

def main():
	n = int(input())
	arr = []
	for _ in range(n):
		t = int(input())
		arr.append(list(map(int, input().split(' '))))
	for i in range(n):
		print(calc(arr[i]))
main()


for t in range(int(input())):
	n = int(input())
	a = [int(i) for i in input().split()]
	c = 0
	f = True
	while c < n and a[c] == 1:
		c = c + 1
	if c == n:
		if n % 2 == 0:
			f = False
		else:
			f = True
	elif c % 2 == 0:
		f = True
	else:
		f = False
	if f:
		print('First')
	else:
		print('Second')


import math
q = int(input())
for z in range(0, q):
	n = int(input())
	s = input()
	s = s.split()
	p = 0
	w = ''
	index = -1
	first = True
	for i in range(0, n):
		if s[i] != '1' and first:
			index = i
			first = False
	if index == -1:
		if n % 2 == 0:
			w = 'Second'
		else:
			w = 'First'
	elif index % 2 == 0:
		w = 'First'
	else:
		w = 'Second'
	print(w)


from sys import stdin
input = lambda : stdin.readline().rstrip('\r\n')
from collections import deque as que, defaultdict as vector
from heapq import *
inin = lambda : int(input())
inar = lambda : list(map(int, input().split()))
from types import GeneratorType

def bootstrap(f, stack=[]):

	def wrappedfunc(*args, **kwargs):
		if stack:
			return f(*args, **kwargs)
		else:
			to = f(*args, **kwargs)
			while True:
				if type(to) is GeneratorType:
					stack.append(to)
					to = next(to)
				else:
					stack.pop()
					if not stack:
						break
					to = stack[-1].send(to)
			return to
	return wrappedfunc
Testcase = inin()
for _ in range(Testcase):
	n = inin()
	a = inar()
	for i in range(n):
		if a[i] > 1:
			print('First' if i % 2 == 0 else 'Second')
			break
	else:
		print('First' if n % 2 == 1 else 'Second')


test = int(input())
for t in range(test):
	n = int(input())
	arr = input().split()
	count = 0
	i = 0
	while i < n - 1 and int(arr[i]) == 1:
		count += 1
		i += 1
	if count % 2 == 0:
		print('First')
	else:
		print('Second')


t = int(input())
for _ in range(t):
	n = int(input())
	liste = [int(x) if x == '1' else 2 for x in input().split()]
	try:
		first = liste.index(2)
		if first % 2 == 0:
			print('First')
		else:
			print('Second')
	except:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')


import sys
inf = int(10000000000.0)
input = sys.stdin.readline
t = int(input())
while t:
	t -= 1
	n = int(input())
	lis = list(map(int, input().split()))
	g = 0
	if lis.count(1) == n:
		if n % 2 == 0:
			g = 1
	else:
		for i in range(n - 1):
			if lis[i] == 1:
				g = not g
			else:
				break
	if g:
		print('Second')
	else:
		print('First')


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	b = list(set(a))
	if len(b) == 1 and b[0] == 1:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif n == 1:
		print('First')
	else:
		k = 0
		for i in range(n):
			if a[i] != 1:
				k = i
				break
		if k % 2 == 0:
			print('First')
		else:
			print('Second')


import sys
from math import floor as fl
from math import ceil as ce
from math import sqrt
cont = sys.stdin.readlines()
cont = [i.strip('\n').split() for i in cont]
num = int(cont.pop(0)[0])

def arrtoint(arr):
	return [int(i) for i in arr]
for i in range(num):
	arr = cont[:2]
	cont = cont[2:]
	l = int(arr.pop(0)[0])
	arr = arrtoint(arr[0])
	if len(arr) == 1:
		print('First')
	elif arr.count(1) == l:
		if l % 2 == 1:
			print('First')
		else:
			print('Second')
	elif arr.count(1) == 0:
		print('First')
	else:
		arr.pop()
		if set(arr) == {1}:
			if l % 2 == 1:
				print('First')
			else:
				print('Second')
			continue
		aind = arr.index(next(filter(lambda x: x > 1, arr)))
		if aind % 2 == 0:
			print('First')
		else:
			print('Second')


for l in [*open(0)][2::2]:
	(c, a) = (0, (l + '1 2').split())
	while '1' == a[c]:
		c += 1
	print('SFeicrosntd'[c + 1 & 1::2])


tc = int(input())
for _ in range(tc):
	flage = False
	cnt = 0
	position = 0
	n = int(input())
	a = list(map(int, input().split()))
	for i in range(len(a)):
		if a[i] == 1:
			cnt += 1
		else:
			flage = True
			position = i
			if position % 2 == 0:
				print('First')
			else:
				print('Second')
			break
	if flage == False:
		if cnt % 2 == 0:
			print('Second')
		else:
			print('First')


def main():
	cost = 0
	n = int(input())
	a = list(map(int, input().split()))
	i = 0
	while i < n and a[i] == 1:
		i += 1
	if i == n:
		print('Second' if n % 2 == 0 else 'First')
		return
	if i % 2:
		print('Second')
	else:
		print('First')
for _ in range(int(input())):
	main()


i = input
for t in range(int(i())):
	i()
	w = 1
	for x in i().split()[-2::-1]:
		w = 1 - w if x == '1' else 1
	print('SFeicrosntd'[w::2])


import sys
import os
import math
import copy
from math import gcd
from bisect import bisect
from io import BytesIO, IOBase
from math import sqrt, floor, factorial, gcd, log, ceil
from collections import deque, Counter, defaultdict
from itertools import permutations, combinations

def Int():
	return int(sys.stdin.readline())

def Mint():
	return map(int, sys.stdin.readline().split())

def Lstr():
	return list(sys.stdin.readline().strip())

def Str():
	return sys.stdin.readline().strip()

def Mstr():
	return map(str, sys.stdin.readline().strip().split())

def List():
	return list(map(int, sys.stdin.readline().split()))

def Hash():
	return dict()

def Mod():
	return 1000000007

def Ncr(n, r, p):
	return fact[n] * (ifact[r] * ifact[n - r] % p) % p

def Most_frequent(list):
	return max(set(list), key=list.count)

def Mat2x2(n):
	return [List() for _ in range(n)]

def solution():
	for i in range(Int()):
		n = Int()
		a = List()
		ans = 0
		for i in range(n):
			if a[i] == 1:
				ans += 1
			else:
				break
		if ans == n:
			ans += 1
		if ans % 2 == 0:
			print('First')
		else:
			print('Second')
solution()


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


t = int(input())
for _ in range(t):
	ans = 'First'
	n = int(input())
	stones = list(map(int, input().split()))
	count = 0
	for i in range(n - 1):
		if stones[i] == 1:
			count += 1
		else:
			break
	if count % 2 == 0:
		print('First')
	else:
		print('Second')


import bisect
import decimal
from decimal import Decimal
import os
from collections import Counter
import bisect
from collections import defaultdict
import math
import random
import heapq
from math import sqrt
import sys
from functools import reduce, cmp_to_key
from collections import deque
import threading
from itertools import combinations
from io import BytesIO, IOBase
from itertools import accumulate
mod = 10 ** 9 + 7
decimal.getcontext().prec = 46

def primeFactors(n):
	prime = set()
	while n % 2 == 0:
		prime.add(2)
		n = n // 2
	for i in range(3, int(math.sqrt(n)) + 1, 2):
		while n % i == 0:
			prime.add(i)
			n = n // i
	if n > 2:
		prime.add(n)
	return list(prime)

def getFactors(n):
	factors = []
	i = 1
	while i <= math.sqrt(n):
		if n % i == 0:
			if n // i == i:
				factors.append(i)
			else:
				factors.append(i)
				factors.append(n // i)
		i = i + 1
	return factors

def modefiedSieve():
	mx = 10 ** 7 + 1
	sieve = [-1] * mx
	for i in range(2, mx):
		if sieve[i] == -1:
			sieve[i] = i
			for j in range(i * i, mx, i):
				if sieve[j] == -1:
					sieve[j] = i
	return sieve

def SieveOfEratosthenes(n):
	prime = [True for i in range(n + 1)]
	p = 2
	while p * p <= n:
		if prime[p] == True:
			for i in range(p * p, n + 1, p):
				prime[i] = False
		p += 1
	num = []
	for p in range(2, n + 1):
		if prime[p]:
			num.append(p)
	return num

def lcm(a, b):
	return a * b // math.gcd(a, b)

def sort_dict(key_value):
	return sorted(key_value.items(), key=lambda kv: (kv[1], kv[0]), reverse=True)

def list_input():
	return list(map(int, input().split()))

def num_input():
	return map(int, input().split())

def string_list():
	return list(input())

def decimalToBinary(n):
	return bin(n).replace('0b', '')

def binaryToDecimal(n):
	return int(n, 2)

def DFS(n, adj, s):
	visited = [False for i in range(n + 1)]
	stack = []
	stack.append(s)
	while len(stack):
		s = stack[-1]
		stack.pop()
		if not visited[s]:
			visited[s] = True
		for node in adj[s]:
			if not visited[node]:
				stack.append(node)

def maxSubArraySum(a, size):
	max_so_far = -sys.maxsize - 1
	max_ending_here = 0
	start = 0
	end = 0
	s = 0
	for i in range(0, size):
		max_ending_here += a[i]
		if max_so_far < max_ending_here:
			max_so_far = max_ending_here
			start = s
			end = i
		if max_ending_here < 0:
			max_ending_here = 0
			s = i + 1
	return (max_so_far, start, end)

def lis(arr):
	n = len(arr)
	lis = [1] * n
	for i in range(1, n):
		for j in range(0, i):
			if arr[i] >= arr[j] and lis[i] < lis[j] + 1:
				lis[i] = lis[j] + 1
	maximum = 0
	for i in range(n):
		maximum = max(maximum, lis[i])
	return maximum

def solve():
	n = int(input())
	arr = list_input()
	i = 0
	turn = 0
	flag = False
	while i < n and arr[i] == 1:
		i += 1
		turn += 1
	if i < n:
		if turn % 2 == 0:
			print('First')
		else:
			print('Second')
	elif turn % 2 == 0:
		print('Second')
	else:
		print('First')
t = 1
t = int(input())
for _ in range(t):
	solve()


for _ in range(int(input())):
	n = int(input())
	a = list((int(x) for x in input().split()))
	i = 0
	t = 0
	if a[0] != 1:
		print('First')
	else:
		nxt = a[0]
		count = 0
		i = 1
		while nxt == 1 and i < n:
			count += 1
			nxt = a[i]
			i += 1
		if count % 2 != 0:
			print('Second')
		else:
			print('First')


import bisect
import os
import gc
import sys
from io import BytesIO, IOBase
from collections import Counter
from collections import deque
import heapq
import math
import statistics

def sin():
	return input()

def ain():
	return list(map(int, sin().split()))

def sain():
	return input().split()

def iin():
	return int(sin())
MAX = float('inf')
MIN = float('-inf')
MOD = 1000000007

def sieve(n):
	prime = [True for i in range(n + 1)]
	p = 2
	while p * p <= n:
		if prime[p] == True:
			for i in range(p * p, n + 1, p):
				prime[i] = False
		p += 1
	s = set()
	for p in range(2, n + 1):
		if prime[p]:
			s.add(p)
	return s

def readTree(n, m):
	adj = [deque([]) for _ in range(n + 1)]
	for _ in range(m):
		(u, v) = ain()
		adj[u].append(v)
		adj[v].append(u)
	return adj

def main():
	for i in range(iin()):
		n = iin()
		l = ain()
		x = 1
		d = [0] * n
		c = 0
		for i in range(n - 1, 0, -1):
			if l[i] == 1:
				c += 1
			else:
				d[i] = c
				c = 0
		d[0] = c
		i = 0
		flag = 0
		while i < n:
			if l[i] != 1:
				if i + d[i] == n - 1:
					break
				else:
					i += d[i] + 1
			else:
				if i == n - 1:
					flag = 1
				x = 1 - x
				i += 1
		if flag == 1:
			x = 1 - x
		if x == 1:
			print('First')
		else:
			print('Second')
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')
main()


import threading, sys
threading.stack_size(2 ** 26)
sys.setrecursionlimit(10 ** 6)

def main():
	a = []
	dp = []

	def recur(i, c):
		if i == len(a) - 1:
			dp[c][i] = c
			return c
		if dp[c][i] != -1:
			return dp[c][i]
		if a[i] == 1:
			ans = recur(i + 1, 1 - c)
		else:
			ans1 = recur(i + 1, c)
			ans2 = recur(i + 1, 1 - c)
			if ans1 == ans2:
				ans = ans1
			else:
				ans = c
		dp[c][i] = ans
		return ans
	t = int(input())
	for ii in range(t):
		n = int(input())
		a = list(map(int, input().split()))
		if len(a) == 1:
			print('First')
			continue
		if len(a) == 2:
			if a[0] == 1:
				print('Second')
			else:
				print('First')
			continue
		greater = False
		one = False
		for i in a:
			if i > 1:
				greater = True
			if i == 1:
				one = True
		if greater and (not one):
			print('First')
			continue
		if not greater and one:
			if n % 2 == 0:
				print('Second')
			else:
				print('First')
			continue
		dp = [[], []]
		for i in range(n):
			dp[0].append(-1)
			dp[1].append(-1)
		ans = recur(0, 1)
		if ans == 1:
			print('First')
		else:
			print('Second')
threading.Thread(target=main).start()


t = int(input())
for i in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	ones = arr.count(1)
	first = True
	if n == ones and n % 2 == 0:
		print('Second')
	elif n == ones and n % 2 != 0:
		print('First')
	else:
		l = 0
		while l < n and arr[l] == 1:
			first = not first
			l += 1
		if first:
			print('First')
		else:
			print('Second')


import math as mt

def most(arr, n):
	if n == 1:
		return 'First'
	else:
		for i in range(n):
			if arr[i] != 1:
				break
		if i == n - 1:
			if n % 2 == 0:
				return 'Second'
			else:
				return 'First'
		elif i % 2 == 1:
			return 'Second'
		else:
			return 'First'
t = int(input())
ans = []
for i in range(t):
	n = int(input())
	arr = list(map(int, input().rstrip().split()))
	res = most(arr, n)
	ans.append(res)
for i in ans:
	print(i)


test = int(input())
for _ in range(test):
	n = int(input())
	arr = list(map(int, input().split()))
	count = 0
	turn = 'f'
	for (i, a) in enumerate(arr):
		if a > 1:
			if turn == 's':
				turn = 'f'
			else:
				turn = 's'
			break
		elif turn == 's':
			turn = 'f'
		else:
			turn = 's'
	if turn == 'f':
		print('Second')
	else:
		print('First')


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


import os, io
from sys import stdout
import collections
input = io.BytesIO(os.read(0, os.fstat(0).st_size)).readline

def primes(n):
	sieve = [True] * n
	for i in range(3, int(n ** 0.5) + 1, 2):
		if sieve[i]:
			sieve[i * i::2 * i] = [False] * ((n - i * i - 1) // (2 * i) + 1)
	return [2] + [i for i in range(3, n, 2) if sieve[i]]

def binomial_coefficient(n, k):
	if 0 <= k <= n:
		ntok = 1
		ktok = 1
		for t in range(1, min(k, n - k) + 1):
			ntok *= n
			ktok *= t
			n -= 1
		return ntok // ktok
	else:
		return 0

def powerOfK(k, max):
	if k == 1:
		return [1]
	if k == -1:
		return [-1, 1]
	result = []
	n = 1
	while n <= max:
		result.append(n)
		n *= k
	return result

def divisors(n):
	i = 1
	result = []
	while i * i <= n:
		if n % i == 0:
			if n / i == i:
				result.append(i)
			else:
				result.append(i)
				result.append(n / i)
		i += 1
	return result

def distance(xa, ya, xb, yb):
	return ((ya - yb) ** 2 + (xa - xb) ** 2) ** 0.5

def digitsSum(n):
	if n == 0:
		return 0
	r = 0
	while n > 0:
		r += n % 10
		n //= 10
	return r

def isValid(i, j, n, m):
	return i >= 0 and i < n and (j >= 0) and (j < m)

def print_grid(grid):
	for line in grid:
		print(' '.join(map(str, line)))

def kadane(a, size):
	max_so_far = 0
	max_ending_here = 0
	for i in range(0, size):
		max_ending_here = max_ending_here + a[i]
		if max_so_far < max_ending_here:
			max_so_far = max_ending_here
		if max_ending_here < 0:
			max_ending_here = 0
	return max_so_far

def prefixSum(arr):
	for i in range(1, len(arr)):
		arr[i] = arr[i] + arr[i - 1]
	return arr

def ceil(n, d):
	if n % d == 0:
		return n // d
	else:
		return n // d + 1

def _abs(a, b):
	return int(abs(a - b))

def evenodd(l):
	even = [e for e in l if e & 1 == 0]
	odd = [e for e in l if e & 1]
	return (even, odd)
for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	if n == 1:
		print('First')
	else:
		i = 0
		cnt = 0
		while i < len(l) and l[i] == 1:
			cnt += 1
			i += 1
		if i == len(l):
			if cnt % 2 == 0:
				print('Second')
			else:
				print('First')
		elif cnt % 2 == 0:
			print('First')
		else:
			print('Second')


for t in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	cnt = 0
	while cnt < n and a[cnt] == 1:
		cnt += 1
	win = cnt % 2
	if cnt == n:
		win = (win + 1) % 2
	if win:
		print('Second')
	else:
		print('First')


import sys
input = sys.stdin.readline
import heapq
import copy
import math
import decimal

def inp():
	return int(input())

def inlt():
	return list(map(int, input().split()))

def insr():
	s = input()
	return list(s[:len(s) - 1])

def insr2():
	s = input()
	return s[:len(s) - 1]

def invr():
	return map(int, input().split())

def pr_list(a):
	print(*a, sep=' ')

def main():
	tests = inp()
	mod = 1000000007
	limit = 10 ** 18
	ans = 0
	stack = []
	hashm = {}
	arr = []
	heapq.heapify(arr)
	for test in range(tests):
		n = inp()
		a = inlt()
		dp = [1 for i in range(n)]
		for i in range(n - 2, -1, -1):
			if a[i] != 1:
				dp[i] = 1
			else:
				dp[i] = not dp[i + 1]
		if dp[0] == 1:
			print('First')
		else:
			print('Second')
main()


t = int(input())
for _ in range(t):
	n = int(input())
	ls = list(map(int, input().split()))
	tem = 0
	while tem < n and ls[tem] == 1:
		tem += 1
	if tem == n:
		if tem % 2 == 0:
			print('Second')
		else:
			print('First')
	elif tem % 2 == 1:
		print('Second')
	else:
		print('First')


cases = int(input())
for t in range(cases):
	n = int(input())
	a = list(map(int, input().split()))
	a.append(0)
	for i in range(n + 1):
		if a[i] != 1:
			break
	start = i
	d = {0: 'First', 1: 'Second'}
	chance = start % 2
	if start == n:
		print(d[chance ^ 1])
	else:
		print(d[chance])


for _ in range(int(input())):
	n = int(input())
	piles = list(map(int, input().split()))
	one_stone_piles = 0
	for pile in piles:
		if pile == 1:
			one_stone_piles += 1
	if one_stone_piles == 0:
		print('First')
	elif one_stone_piles == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		x = 0
		while x < n and piles[x] == 1:
			x += 1
		if x % 2 == 0:
			print('First')
		else:
			print('Second')


from __future__ import division, print_function
MOD = 998244353
mod = 10 ** 9 + 7

def prepare_factorial():
	fact = [1]
	for i in range(1, 100005):
		fact.append(fact[-1] * i % mod)
	ifact = [0] * 100005
	ifact[100004] = pow(fact[100004], mod - 2, mod)
	for i in range(100004, 0, -1):
		ifact[i - 1] = i * ifact[i] % mod
	return (fact, ifact)
import sys
from bisect import bisect_left, bisect_right, insort
from math import floor, ceil, sqrt, degrees, atan, pi, log, sin, radians
from heapq import heappop, heapify, heappush
from collections import Counter, defaultdict, deque

def modinv(n, p):
	return pow(n, p - 2, p)

def ncr(n, r, fact, ifact):
	t = fact[n] * (ifact[r] * ifact[n - r]) % mod % mod
	return t

def intarray():
	return map(int, sys.stdin.readline().strip().split())

def array():
	return list(map(int, sys.stdin.readline().strip().split()))

def input():
	return sys.stdin.readline().strip()

def GCD(x, y):
	while y:
		(x, y) = (y, x % y)
	return x

def lcm(x, y):
	return x * y // GCD(x, y)

def get_xor(n):
	return [n, 1, n + 1, 0][n % 4]

def fast_expo(a, b):
	res = 1
	while b:
		if b & 1:
			res = res * a
			res %= MOD
			b -= 1
		else:
			a = a * a
			a %= MOD
			b >>= 1
	res %= MOD
	return res

def get_n(P):
	ans = (-1 + sqrt(1 + 8 * P)) // 2
	return ans

def solve():
	n = int(input())
	a = array()
	if n == 1:
		print('First')
		return
	c1 = 0
	for i in a:
		if i == 1:
			c1 += 1
		else:
			break
	if c1 == n:
		if n % 2 != 0:
			print('First')
		else:
			print('Second')
		return
	elif c1 % 2 == 0:
		print('First')
	else:
		print('Second')
	return

def main():
	T = int(input())
	while T:
		solve()
		T -= 1
py2 = round(0.5)
if py2:
	from future_builtins import ascii, filter, hex, map, oct, zip
	range = xrange
import os, sys
from io import IOBase, BytesIO
BUFSIZE = 8192

class FastIO(BytesIO):
	newlines = 0

	def __init__(self, file):
		self._file = file
		self._fd = file.fileno()
		self.writable = 'x' in file.mode or 'w' in file.mode
		self.write = super(FastIO, self).write if self.writable else None

	def _fill(self):
		s = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
		self.seek((self.tell(), self.seek(0, 2), super(FastIO, self).write(s))[0])
		return s

	def read(self):
		while self._fill():
			pass
		return super(FastIO, self).read()

	def readline(self):
		while self.newlines == 0:
			s = self._fill()
			self.newlines = s.count(b'\n') + (not s)
		self.newlines -= 1
		return super(FastIO, self).readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.getvalue())
			(self.truncate(0), self.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		if py2:
			self.write = self.buffer.write
			self.read = self.buffer.read
			self.readline = self.buffer.readline
		else:
			self.write = lambda s: self.buffer.write(s.encode('ascii'))
			self.read = lambda : self.buffer.read().decode('ascii')
			self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')
main()


from collections import Counter

def solve(a, n):
	d = Counter(a)
	mn = min(a)
	if mn > 1:
		return 'First'
	if mn == 1 and len(d) == 1:
		if n % 2 == 1:
			return 'First'
		else:
			return 'Second'
	if a[0] == 1:
		cnt = 0
		i = 0
		while i < n and a[i] == 1:
			cnt += 1
			i += 1
		if cnt % 2 == 0:
			return 'First'
		else:
			return 'Second'
	return 'First'
t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	print(solve(a, n))


from sys import stdin
input = lambda : stdin.readline().rstrip('\r\n')
from collections import deque as que, defaultdict as vector
from heapq import *
inin = lambda : int(input())
inar = lambda : list(map(int, input().split()))
Testcase = inin()
for _ in range(Testcase):
	n = inin()
	a = inar()
	for i in range(n):
		if a[i] > 1:
			print('First' if i % 2 == 0 else 'Second')
			break
	else:
		print('First' if n % 2 == 1 else 'Second')


t = int(input())
for j in range(0, t):
	n = int(input())
	c = 0
	a = [int(i) for i in input().split()]
	for i in range(0, n):
		if a[i] == 1:
			c += 1
	if c == 0:
		print('First')
	elif c == n:
		if c % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		d = 0
		for i in range(0, n):
			if a[i] == 1:
				d += 1
			else:
				break
		if d % 2 == 0:
			print('First')
		else:
			print('Second')


import heapq
from sys import maxsize, stdin
from math import log, pow, sqrt, floor, ceil, pi
from collections import Counter, defaultdict
from collections import deque as deq
from functools import lru_cache
from itertools import permutations as perm
from itertools import combinations as comb
from itertools import combinations_with_replacement as combr
INT_MAX = maxsize
INT_MIN = -INT_MAX
PI = pi
MOD = 1000000007
input = stdin.readline

def inp():
	return int(input())

def inlt():
	return list(map(int, input().split()))

def insr():
	s = input()
	return list(s[:len(s) - 1])

def invr():
	return map(int, input().split())
t = inp()
while t:
	n = inp()
	a = inlt()
	count = 0
	found = False
	for i in a:
		if i == 1:
			count += 1
		else:
			found = True
			break
	if found:
		if count % 2:
			print('Second')
		else:
			print('First')
	elif count % 2:
		print('First')
	else:
		print('Second')
	t -= 1


t = int(input())
while t:
	n = int(input())
	a = input().split()
	a = list(map(int, a))
	dp = [[False, False] for i in range(n + 1)]
	for i in range(n - 1, -1, -1):
		if a[i] == 1:
			dp[i][0] = not dp[i + 1][1]
			dp[i][1] = not dp[i + 1][0]
		else:
			dp[i][0] = not dp[i + 1][1] or dp[i + 1][0]
			dp[i][1] = not dp[i + 1][0] or dp[i + 1][1]
	if dp[i][0]:
		print('First')
	else:
		print('Second')
	t -= 1


for _ in range(int(input())):
	(sees, x) = (int(input()), -1)
	for j in map(int, input().split()):
		x += 1
		if j > 1:
			break
	print('First' if x % 2 == 0 else 'Second')


t = int(input())
for x in range(0, t):
	n = int(input())
	s = input().split(' ')
	count = 0
	for i in range(0, len(s)):
		if s[i] == '1':
			count += 1
		else:
			break
	if count == n:
		count -= 1
	if count % 2 == 0:
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	turn = False
	for i in arr:
		if i == 1:
			turn = not turn
		else:
			turn = not turn
			break
	if turn:
		print('First')
	else:
		print('Second')


t = int(input())
final = []
for i in range(t):
	n = int(input())
	l = [int(x) for x in input().split()]
	count = 0
	for i in range(len(l)):
		if l[i] == 1:
			count += 1
		else:
			break
	if count % 2 == 0 and len(l) != count:
		final.append('First')
	elif count % 2 != 0 and len(l) != count:
		final.append('Second')
	elif count % 2 == 0 and len(l) == count:
		final.append('Second')
	elif count % 2 != 0 and len(l) == count:
		final.append('First')
for i in range(t):
	print(final[i])


def answer(n, a):
	for (i, e) in enumerate(a):
		if e > 1 and i % 2 == 0:
			return 'First'
		elif e > 1 and i % 2 == 1:
			return 'Second'
	if n % 2 == 0:
		return 'Second'
	else:
		return 'First'

def main():
	t = int(input())
	n = [0] * t
	a = [0] * t
	for j in range(t):
		n[j] = int(input())
		a[j] = [int(i) for i in input().split()]
	for j in range(t):
		print(answer(n[j], a[j]))
main()


def multiple_input():
	return map(int, input().split())

def list_input():
	return list(map(int, input().split()))
for _ in range(int(input())):
	n = int(input())
	a = list_input()
	win = 0
	i = 0
	count = 0
	while i < n and a[i] == 1:
		count += 1
		i += 1
	if count == n:
		if count % 2 == 0:
			win = 1
	elif count % 2 != 0:
		win = 1
	if win == 0:
		print('First')
	else:
		print('Second')


T = int(input())
for _ in range(T):
	q = int(input())
	f = 0
	b = list(map(int, input().split()))
	i = 0
	while i < q:
		if b[i] == 1:
			i = i + 1
			f = f + 1
		else:
			f = f + 1
			break
	if f % 2 == 0:
		print('Second')
	else:
		print('First')


import sys
input = sys.stdin.readline

def stones(arr):
	p1 = False
	p2 = False
	for ele in arr:
		if ele > 1:
			if p1 == False:
				return 'First'
			else:
				return 'Second'
		elif p1 == False:
			p1 = True
			p2 = False
		else:
			p2 = True
			p1 = False
	if p1 == True:
		return 'First'
	return 'Second'

def solution():
	n = int(input())
	arr = list(map(lambda x: int(x), input().split()))
	print(stones(arr))
t = int(input())
for i in range(0, t):
	solution()


from sys import *
input = stdin.readline
for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	i = 0
	c = 0
	while i < n:
		if a[i] > 1:
			break
		else:
			if i == n - 1:
				break
			i = i + 1
			c = (c + 1) % 2
	if c == 0:
		stdout.write('First\n')
	else:
		stdout.write('Second\n')


for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	if arr.count(1) == len(arr):
		if len(arr) % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		check = True
		for i in arr:
			if i != 1:
				if check:
					print('First')
				else:
					print('Second')
				break
			else:
				check = not check


t = int(input())
s = 0
while s < t:
	n = int(input())
	a = list(map(int, input().split()))
	flag = 0
	add = 0
	for i in range(n):
		if a[i] > 1:
			flag = 1
			store = i
			break
		else:
			add += 1
	if flag == 0:
		if add % 2 == 0:
			print('Second')
		else:
			print('First')
	elif add % 2 == 0:
		print('First')
	else:
		print('Second')
	s += 1


import random

def gcd(a, b):
	if a == 0:
		return b
	return gcd(b % a, a)

def lcm(a, b):
	return a * b / gcd(a, b)
for _ in range(int(input())):
	n = int(input())
	f = 0
	k = 0
	a = list(map(int, input().split()))
	d = [0] * n
	d[n - 1] = 1
	prevBest = n - 1
	for i in range(n - 2, -1, -1):
		if prevBest - i == 1:
			if a[i] == 1:
				d[i] = 0
			else:
				d[i] = 1
				prevBest = i
		elif a[i] == 1:
			d[i] = 2
			prevBest = i
		else:
			d[i] = 2
			prevBest = i
	if d[0] == 0:
		print('Second')
	else:
		print('First')


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


t = int(input())
i = 0
while i < t:
	n = int(input())
	arr = list(map(int, input().split()))
	res = 0
	for x in arr:
		if x == 1:
			if res == 1:
				res = 0
			else:
				res = 1
		elif x > 1:
			if res == 1:
				res = 0
			else:
				res = 1
			break
	if res == 1:
		print('First')
	else:
		print('Second')
	i = i + 1


import sys
input = sys.stdin.readline
for _ in range(int(input())):
	n = int(input())
	L = list(map(int, input().split()))
	ans = 1
	i = 0
	flag = 0
	while i < n:
		if L[i] == 1:
			ans = 3 - ans
		else:
			flag = 1
			break
		i += 1
	if flag == 1:
		print('First') if ans == 1 else print('Second')
	else:
		print('Second') if ans == 1 else print('First')


from sys import stdin

def iinput():
	return int(stdin.readline())

def minput():
	return map(int, stdin.readline().split())

def linput():
	return list(map(int, stdin.readline().split()))
t = iinput()
while t:
	t -= 1
	n = iinput()
	a = linput()
	temp = 1
	one = False if a[0] != 1 else True
	block = []
	for i in range(1, n):
		if a[i] > 1 and a[i - 1] > 1 or a[i] == a[i - 1] == 1:
			temp += 1
		else:
			block.append(temp)
			temp = 1
	block.append(temp)
	d = {1: 'Second', 0: 'First'}
	beg = 0
	for e in range(len(block) - 1):
		if one:
			if block[e] & 1:
				beg ^= 1
			one = False
		else:
			if e + 1 == len(block) - 1 and block[e + 1] & 1 == 0:
				beg ^= 1
			elif e + 1 < len(block) - 1 and block[e + 1] & 1:
				beg ^= 1
			else:
				pass
			one = True
	if one and block[-1] & 1 == 0:
		beg ^= 1
	print(d[beg])


def sol(a, n):
	if set(a) == {1}:
		if n % 2 == 0:
			return 'Second'
		else:
			return 'First'
	for i in range(n):
		if a[i] > 1:
			ind = a.index(a[i])
			if (ind + 1) % 2 != 0:
				return 'First'
			else:
				return 'Second'
for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	print(sol(a, n))


ll = lambda : list(map(int, input().split()))
st = lambda : input()
v = lambda : map(int, input().split())
ii = lambda : int(input())
from collections import *
from math import *
from datetime import datetime
from sys import stdin, stdout
for t in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	p = 0
	c = 0
	for i in range(n):
		if l[i] != 1:
			c += 1
			break
		else:
			c += 1
	if c % 2:
		print('First')
	else:
		print('Second')


from sys import *
input = stdin.readline
t = int(input())
for _ in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	if 1 not in l or n == 1:
		print('First')
	elif l[0] == 1 and len(set(l)) == 1:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		for i in range(n):
			if l[i] != 1:
				c = i + 1
				break
		if c % 2 == 0:
			print('Second')
		else:
			print('First')


def main():
	t = int(input())
	for _ in range(t):
		n = int(input())
		a = list(map(int, input().split()))
		canWin = False
		for i in range(len(a) - 1, -1, -1):
			if canWin:
				if a[i] == 1:
					canWin = False
				else:
					canWin = True
			else:
				canWin = True
		if canWin:
			print('First')
		else:
			print('Second')
main()


for i in range(int(input())):
	d = int(input())
	f = list(map(int, input().split()))
	for k in range(len(f)):
		if f[k] != 1:
			break
	if k % 2 == 0:
		print('First')
	else:
		print('Second')


t = int(input())
for T in range(t):
	n = int(input())
	stones = list(map(int, input().split()))
	leading1 = 0
	for i in range(n - 1):
		if stones[i] == 1:
			leading1 += 1
		else:
			break
	if leading1 % 2 == 0:
		print('First')
	else:
		print('Second')


t = int(input())
for _ in range(t):
	n = int(input())
	l = [int(i) for i in input().split()]
	ct = 0
	i = 0
	while i < n - 1 and l[i] == 1:
		ct += 1
		i += 1
	if ct % 2 == 0:
		print('First')
	else:
		print('Second')


import io, os
from collections import deque
RL = lambda : list(map(int, input().split(' ')))
T = int(input())
for _ in range(T):
	n = int(input())
	l = RL()
	cnt = 0
	for i in range(n - 1):
		if l[i] == 1:
			cnt += 1
		else:
			break
	if cnt % 2:
		print('Second')
	else:
		print('First')


from math import *
sInt = lambda : int(input())
mInt = lambda : map(int, input().split())
lInt = lambda : list(map(int, input().split()))
t = sInt()
for _ in range(t):
	n = sInt()
	a = lInt()
	if n == 1:
		print('First')
	else:
		c = 0
		for i in range(n):
			if a[i] == 1:
				c += 1
			else:
				break
		if c == n:
			if c % 2 == 0:
				print('Second')
			else:
				print('First')
		elif c % 2 == 0:
			print('First')
		else:
			print('Second')


import sys
input = lambda : sys.stdin.readline().rstrip('\r\n')
for _ in range(int(input())):
	n = int(input())
	a = [int(x) for x in input().split()]
	idx = -1
	for i in range(n):
		if a[i] != 1:
			idx = i + 1
			break
	if idx == -1:
		idx = n
	print('First' if idx & 1 else 'Second')


import math

def solve():
	n = int(input())
	l = list(map(int, input().split()))
	dp = [0] * n
	dp[n - 1] = 1
	for i in range(n - 2, -1, -1):
		if dp[i + 1] == 1:
			if l[i] == 1:
				dp[i] = 0
			else:
				dp[i] = 1
		else:
			dp[i] = 1
	if dp[0] == 1:
		print('First')
	else:
		print('Second')
t = 1
t = int(input())
while t > 0:
	t -= 1
	solve()


def solution(ar):
	index = 0
	while index < len(ar):
		if ar[index] > 1:
			break
		else:
			index += 1
	if index == len(ar):
		index -= 1
	if index % 2 == 0:
		print('First')
	else:
		print('Second')
test_case_no = int(input())
test = []
for i in range(test_case_no):
	piles = input()
	ar = [int(x) for x in input().split()]
	test.append(ar)
for ar in test:
	solution(ar)


for _ in range(int(input())):
	n = int(input())
	stone = list(map(int, input().split()))
	stone.pop()
	ans = 1
	for s in stone[::-1]:
		if s == 1:
			ans ^= 1
		elif ans == 0:
			ans = 1
	print('First' if ans else 'Second')


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


def main():
	test = int(input())
	for _ in range(test):
		n = int(input())
		arr = list(map(int, input().split()))
		on = 0
		for i in arr:
			if i <= 1:
				on += 1
			else:
				break
		if on == n:
			if on % 2 == 0:
				print('Second')
			else:
				print('First')
		elif on % 2 == 0:
			print('First')
		else:
			print('Second')
main()


for _ in range(int(input())):
	num = int(input())
	stones = list(map(int, input().split()))
	if sum(stones) == num:
		if num % 2 == 0:
			print('Second')
		else:
			print('First')
		continue
	flag = 1
	for i in stones:
		if i == 1:
			flag ^= 1
		else:
			break
	if flag:
		print('First')
	else:
		print('Second')


t = int(input())
for test_case in range(t):
	n = [int(x) for x in input().split()]
	n = n[0]
	res = 0
	a = []
	a = [int(y) for y in input().split()]
	torf = True
	res = True
	for i in range(len(a) - 1):
		if a[i] == 1:
			res = not res
		else:
			break
	if res:
		res = 'First'
	else:
		res = 'Second'
	print(res)


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


import math

def dtb(n):
	return bin(n).replace('0b', '')

def btd(n):
	return int(n, 2)
t = int(input())
for k in range(t):
	n = int(input())
	a = list(map(int, input().split()))[:n]
	c = 0
	j = 0
	if n == 1:
		print('First')
		continue
	for i in range(n):
		if a[i] == 1:
			c += 1
			j = i
		else:
			break
	if c % 2 == 1 and j != n - 1:
		print('Second')
	elif c % 2 == 0 and j != n - 1:
		print('First')
	elif j == n - 1:
		if c % 2 == 1:
			print('First')
		else:
			print('Second')


for _ in range(int(input())):
	n = int(input())
	s = list(map(int, input().split()))
	t = s.count(1)
	if t == 0 or n == 1:
		print('First')
	elif s == [1] * t:
		print('First' if t % 2 else 'Second')
	else:
		r = 0
		while s[r] == 1:
			r += 1
		if r % 2 == 1:
			print('Second')
		else:
			print('First')


for _ in range(int(input())):
	n = int(input())
	a = [int(i) for i in input().split()]
	all_ones = True
	for a_i in a:
		if a_i != 1:
			all_ones = False
			break
	if all_ones:
		if len(a) % 2 == 1:
			print('First')
		else:
			print('Second')
		continue
	all_not_ones = True
	for a_i in a:
		if a_i == 1:
			all_not_ones = False
			break
	if all_not_ones:
		print('First')
		continue
	leading_ones = 0
	for a_i in a:
		if a_i != 1:
			break
		leading_ones += 1
	if leading_ones % 2 == 0:
		print('First')
	else:
		print('Second')


import sys

def rs():
	return sys.stdin.readline().rstrip()

def ri():
	return int(sys.stdin.readline())

def ria():
	return list(map(int, sys.stdin.readline().split()))

def ws(s):
	sys.stdout.write(s)
	sys.stdout.write('\n')

def wi(n):
	sys.stdout.write(str(n))
	sys.stdout.write('\n')

def wia(a, sep=' '):
	sys.stdout.write(sep.join([str(x) for x in a]))
	sys.stdout.write('\n')

def solve(n, a):
	dp = [False] * n
	dp[n - 1] = True
	for i in range(n - 2, -1, -1):
		if dp[i + 1]:
			if a[i] > 1:
				dp[i] = True
			else:
				dp[i] = False
		else:
			dp[i] = True
	return dp[0]

def main():
	for _ in range(ri()):
		n = ri()
		a = ria()
		ws('First' if solve(n, a) else 'Second')
main()


import sys
fast_reader = sys.stdin.readline
fast_writer = sys.stdout.write

def input():
	return fast_reader().strip()

def print(*argv):
	fast_writer(' '.join((str(i) for i in argv)))
	fast_writer('\n')
for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	if sum(l) == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif n == 1:
		print('First')
	else:
		c = 0
		for i in range(n):
			if l[i] == 1:
				c += 1
			else:
				break
		if c % 2 == 1:
			print('Second')
		else:
			print('First')


import random

def RANDOM_FUNCTION():
	return random.randint(1, 1000000000.0)
for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	if a.count(1) == n:
		if n % 2 == 1:
			print('First')
		else:
			print('Second')
	elif a.count(1) != 0:
		for i in range(n):
			if a[i] != 1:
				x = RANDOM_FUNCTION()
				if i % 2 == 0 or x == -1:
					print('First')
				else:
					print('Second')
				break
	else:
		print('First')


for _ in range(int(input())):
	input()
	s = list(map(int, input().split()))[::-1]
	ans = 1
	for x in s[1:]:
		if ans == 0:
			ans = 1
		elif x == 1:
			ans = 0
		else:
			ans = 1
	if ans == 1:
		print('First')
	else:
		print('Second')


t = int(input())
for b in range(t):
	n = int(input())
	x = map(int, input().split())
	new = []
	a = True
	for no in x:
		new.append(no)
	count = 0
	i = 0
	try:
		while not new[i] > 1:
			count = count + 1
			i = i + 1
	except IndexError:
		a = False
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	if count % 2 == 0 and a is True:
		print('First')
	elif a is True:
		print('Second')


t = int(input())
for i in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	first = 'First'
	sec = 'Second'
	if n == 1:
		print(first)
	else:
		r = min(l)
		if r != 1:
			print(first)
		else:
			cnt = 0
			ans = []
			for j in range(n):
				if l[j] == 1:
					cnt += 1
				else:
					break
			if cnt == n:
				if n % 2 == 1:
					print(first)
				else:
					print(sec)
			elif cnt % 2 == 1:
				print(sec)
			else:
				print(first)


t = int(input())
while t > 0:
	t -= 1
	n = int(input())
	arr = list(map(int, input().split()))
	winner = False
	chance = False
	i = 0
	while i < len(arr):
		chance = not chance
		if arr[i] > 1:
			break
		i += 1
	if chance:
		print('First')
	else:
		print('Second')


t = int(input())
while t:
	n = int(input())
	a = [int(i) for i in input().split()]
	winner = 'First'
	for i in range(n):
		if a[i] > 1:
			break
		elif i != n - 1:
			winner = 'Second' if winner == 'First' else 'First'
	print(winner)
	t -= 1


for _ in range(int(input())):
	n = int(input())
	l = [int(i) for i in input().split()][:n]
	(f, s) = (True, False)
	for i in range(n):
		if l[i] != 1:
			break
		else:
			f = not f
			s = not s
	else:
		f = not f
		s = not s
	if f:
		print('First')
	if s:
		print('Second')


t = int(input())
for i in range(t):
	n = input()
	piles = list(map(int, input().split()))
	count1 = piles.count(1)
	if len(piles) == 1:
		winner = 'First'
	elif count1 == len(piles) and count1 % 2 == 0:
		winner = 'Second'
	elif count1 == len(piles) and count1 % 2 == 1:
		winner = 'First'
	else:
		x = 0
		while piles[x] == 1:
			x += 1
		if x % 2 == 0:
			winner = 'First'
		else:
			winner = 'Second'
	print(winner)


import sys
input = sys.stdin.readline
import sys
input = sys.stdin.readline

def toggle(k):
	if k == 'First':
		return 'Second'
	return 'First'
for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	ans = 'First'
	for i in range(n - 1):
		if arr[i] == 1:
			ans = toggle(ans)
		else:
			break
	print(ans)


t = int(input())
for i in range(t):
	piles = int(input())
	stones = [int(s) for s in input().split(' ')]
	if sum(stones) == piles:
		if piles % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		counter = 0
		for stone in stones:
			if stone == 1:
				counter += 1
			else:
				break
		if counter % 2 == 0:
			print('First')
		else:
			print('Second')


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


def determineWinner(piles):
	numberOfMoves = 0
	if sum(piles) == 100000:
		return 'Second'
	if 1 not in piles:
		return 'First'
	while len(piles) != 0:
		if piles[0] == 1:
			del piles[0]
		elif len(piles) == 1:
			del piles[0]
		else:
			next1 = -1
			for i in range(1, len(piles)):
				if piles[i] != 1:
					break
				else:
					next1 = i
			if next1 == -1:
				piles[0] = 1
			elif next1 == len(piles) - 1:
				if next1 % 2 == 0:
					del piles[0]
				else:
					piles[0] = 1
			elif next1 % 2 == 1:
				del piles[0]
			else:
				piles[0] = 1
		numberOfMoves += 1
	if numberOfMoves % 2 == 0:
		return 'Second'
	else:
		return 'First'
x = int(input())
for i in range(x):
	numOfPiles = int(input())
	piles = input()
	piles = piles.split()
	print(determineWinner(list(map(lambda x: int(x), piles))))


t = int(input())
for i in range(t):
	n = int(input())
	inp = input()
	arr = inp.split(' ')
	if arr[0] != '1':
		print('First')
		continue
	count = 0
	for j in range(n):
		if arr[j] != '1':
			break
		else:
			count = count + 1
	if count == len(arr):
		if count % 2 == 1:
			print('First')
		else:
			print('Second')
	elif count % 2 == 0:
		print('First')
	else:
		print('Second')


from sys import stdin, stdout
from math import gcd, sqrt
from collections import deque
input = stdin.readline
R = lambda : map(int, input().split())
I = lambda : int(input())
S = lambda : input().rstrip('\n')
L = lambda : list(R())
P = lambda x: stdout.write(x)
lcm = lambda x, y: x * y // gcd(x, y)
hg = lambda x, y: (y + x - 1) // x * x
pw = lambda x: 0 if x == 1 else 1 + pw(x // 2)
chk = lambda x: chk(x // 2) if not x % 2 else True if x == 1 else False
sm = lambda x: (x ** 2 + x) // 2
N = 10 ** 9 + 7
for _ in range(I()):
	n = I()
	res = 1
	for i in L()[::-1][1:]:
		if res:
			if i == 1:
				res = 0
		else:
			res = 1
	print('First' if res else 'Second')


tc = int(input())
while tc:
	tc -= 1
	n = int(input())
	a = list(map(int, input().strip().split()))
	cnt = 0
	for x in a:
		if x == 1:
			cnt += 1
		else:
			break
	if cnt == n:
		if cnt % 2 == 0:
			print('Second')
		else:
			print('First')
	elif cnt % 2 == 0:
		print('First')
	else:
		print('Second')


t = int(input())
for _ in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	i = 0
	win = 1
	while i < n and arr[i] == 1:
		if i == n - 1:
			break
		if win == 1:
			win = 2
		else:
			win = 1
		i += 1
	if win == 1:
		print('First')
	else:
		print('Second')


import sys
t = int(input())
for _ in range(t):
	n = int(input())
	arr = [int(x) for x in input().split()]
	if n % 2 != 0:
		pivot = -1
		for i in range(n):
			if arr[i] != 1:
				pivot = i
				break
		if pivot == -1 or pivot == n - 1:
			print('First')
			continue
		if pivot % 2 == 0:
			print('First')
		else:
			print('Second')
		continue
	else:
		pivot = -1
		for i in range(n):
			if arr[i] != 1:
				pivot = i
				break
		if pivot == -1 or pivot == n - 1:
			print('Second')
			continue
		if pivot % 2 == 0:
			print('First')
		else:
			print('Second')
		continue


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().rstrip().split()))
	f = 'First'
	s = 'Second'
	if n == 1:
		print(f)
		continue
	else:
		pos = -1
		for i in range(n):
			if a[i] != 1:
				pos = i
				break
		if pos == -1:
			if n % 2 == 0:
				print(s)
			else:
				print(f)
		elif pos % 2 == 0:
			print(f)
		else:
			print(s)


from __future__ import division, print_function
import os, sys
import math
import collections
from itertools import permutations
from io import BytesIO, IOBase
if sys.version_info[0] < 3:
	from __builtin__ import xrange as range
	from future_builtins import ascii, filter, hex, map, oct, zip

class my_dictionary(dict):

	def __init__(self):
		self = dict()

	def add(self, key, value):
		self[key] = value

def ii():
	return int(input())

def si():
	return input()

def mi():
	return map(int, input().strip().split(' '))

def msi():
	return map(str, input().strip().split(' '))

def li():
	return list(mi())

def dmain():
	sys.setrecursionlimit(100000000)
	threading.stack_size(40960000)
	thread = threading.Thread(target=main)
	thread.start()
abc = 'abcdefghijklmnopqrstuvwxyz'
abd = {'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4, 'f': 5, 'g': 6, 'h': 7, 'i': 8, 'j': 9, 'k': 10, 'l': 11, 'm': 12, 'n': 13, 'o': 14, 'p': 15, 'q': 16, 'r': 17, 's': 18, 't': 19, 'u': 20, 'v': 21, 'w': 22, 'x': 23, 'y': 24, 'z': 25}
mod = 1000000007
inf = float('inf')
vow = ['a', 'e', 'i', 'o', 'u']
(dx, dy) = ([-1, 1, 0, 0], [0, 0, 1, -1])

def getKey(item):
	return item[1]

def sort2(l):
	return sorted(l, key=getKey, reverse=True)

def d2(n, m, num):
	return [[num for x in range(m)] for y in range(n)]

def isPowerOfTwo(x):
	return x and (not x & x - 1)

def decimalToBinary(n):
	return bin(n).replace('0b', '')

def ntl(n):
	return [int(i) for i in str(n)]

def ncr(n, r):
	return factorial(n) // (factorial(r) * factorial(n - r))

def binary_search(arr, low, high, x):
	if high >= low:
		mid = (high + low) // 2
		if arr[mid] == x:
			return mid
		elif arr[mid] > x:
			return binary_search(arr, low, mid - 1, x)
		else:
			return binary_search(arr, mid + 1, high, x)
	else:
		return -1

def ceil(x, y):
	if x % y == 0:
		return x // y
	else:
		return x // y + 1

def powerMod(x, y, p):
	res = 1
	x %= p
	while y > 0:
		if y & 1:
			res = res * x % p
		y = y >> 1
		x = x * x % p
	return res

def gcd(x, y):
	while y:
		(x, y) = (y, x % y)
	return x

def isPrime(n):
	if n <= 1:
		return False
	if n <= 3:
		return True
	if n % 2 == 0 or n % 3 == 0:
		return False
	i = 5
	while i * i <= n:
		if n % i == 0 or n % (i + 2) == 0:
			return False
		i = i + 6
	return True

def read():
	sys.stdin = open('input.txt', 'r')
	sys.stdout = open('output.txt', 'w')

def padded_bin_with_complement(x):
	if x < 0:
		return bin(2 ** 16 - abs(x))[2:].zfill(16)
	else:
		return bin(x)[2:].zfill(16)

def binaryToDecimal(binary):
	binary1 = binary
	(decimal, i, n) = (0, 0, 0)
	while binary != 0:
		dec = binary % 10
		decimal = decimal + dec * pow(2, i)
		binary = binary // 10
		i += 1
	print(decimal)

def CountFrequency(my_list):
	freq = {}
	for item in my_list:
		if item in freq:
			freq[item] += 1
		else:
			freq[item] = 1
	return freq

def pos(a):
	b = [0] * len(a)
	c = sorted(a)
	for i in range(len(a)):
		for j in range(len(a)):
			if c[j] == a[i]:
				b[i] = j
				break
	return b

def smallestDivisor(n):
	if n % 2 == 0:
		return 2
	i = 3
	while i * i <= n:
		if n % i == 0:
			return i
		i += 2
	return n

def commonn(a, b, n):
	c = []
	for i in range(n):
		if a[i] == b[i]:
			c.append('-1')
		else:
			c.append(b[i])
	return c

def primeFactors(n):
	j = []
	while n % 2 == 0:
		j.append(2)
		n = n / 2
	for i in range(3, int(math.sqrt(n)) + 1, 2):
		while n % i == 0:
			j.append(int(n))
			n = n / i
	if n > 2:
		j.append(int(n))
	return j

def sumdigit(n):
	n = str(n)
	k = 0
	for i in range(len(n)):
		k += int(n[i])
	return k

def largeseq1(a, cost, ini, des):
	ind = -1
	mx = -1000000007
	j = 0
	for i in range(des - 1, ini):
		if a[i] > mx:
			mx = a[i]
			j += cost[i]
			ind = i
	if ind != ini - 1:
		return -1
	else:
		return j

def largeseq2(a, cost, ini, des):
	ind = -1
	mx = -1000000007
	j = 0
	for i in range(des - 1, ini - 2, -1):
		if a[i] > mx:
			mx = a[i]
			j += cost[i]
			ind = i
	if ind != ini - 1:
		return -1
	else:
		return j

def main():
	for _ in range(ii()):
		n = ii()
		a = li()
		f = 0
		for i in range(n):
			if a[i] != 1:
				break
			else:
				f += 1
		if f == n:
			if f % 2:
				print('First')
			else:
				print('Second')
			continue
		if f % 2 == 0:
			print('First')
		else:
			print('Second')
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')

def print(*args, **kwargs):
	(sep, file) = (kwargs.pop('sep', ' '), kwargs.pop('file', sys.stdout))
	at_start = True
	for x in args:
		if not at_start:
			file.write(sep)
		file.write(str(x))
		at_start = False
	file.write(kwargs.pop('end', '\n'))
	if kwargs.pop('flush', False):
		file.flush()
if sys.version_info[0] < 3:
	(sys.stdin, sys.stdout) = (FastIO(sys.stdin), FastIO(sys.stdout))
else:
	(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')
main()


T = int(input())
for t in range(T):
	N = int(input())
	P = list(map(int, input().split()))
	one = 0
	while one < N and P[one] == 1:
		one += 1
	result = 'Second' if (one == N) ^ one % 2 else 'First'
	print(result)


t = int(input())
for i2 in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	i = 0
	while i < n and l[i] == 1:
		i += 1
	if i == n and i % 2 == 0:
		print('Second')
	elif i == n:
		print('First')
	elif i % 2 == 0:
		print('First')
	else:
		print('Second')


import math, string, itertools, fractions, heapq, collections, re, array, bisect, sys, copy, functools
sys.setrecursionlimit(10 ** 7)
inf = 10 ** 20
eps = 1.0 / 10 ** 10
mod = 10 ** 9 + 7
mod2 = 998244353
dd = [(-1, 0), (0, 1), (1, 0), (0, -1)]
ddn = [(-1, 0), (-1, 1), (0, 1), (1, 1), (1, 0), (1, -1), (0, -1), (-1, -1)]

def LI():
	return list(map(int, sys.stdin.readline().split()))

def LLI():
	return [list(map(int, l.split())) for l in sys.stdin.readlines()]

def LI_():
	return [int(x) - 1 for x in sys.stdin.readline().split()]

def LF():
	return [float(x) for x in sys.stdin.readline().split()]

def LS():
	return sys.stdin.readline().split()

def I():
	return int(sys.stdin.readline())

def F():
	return float(sys.stdin.readline())

def S():
	return input()

def pf(s):
	return print(s, flush=True)

def pe(s):
	return print(str(s), file=sys.stderr)

def JA(a, sep):
	return sep.join(map(str, a))

def JAA(a, s, t):
	return s.join((t.join(map(str, b)) for b in a))

def IF(c, t, f):
	return t if c else f

def main():
	t = I()
	rr = []
	for _ in range(t):
		n = I()
		a = LI()
		r = [False]
		for c in a[::-1]:
			g = r[-1]
			if not g or c > 1:
				r.append(True)
			else:
				r.append(False)
		rr.append(IF(r[-1], 'First', 'Second'))
	return JA(rr, '\n')
print(main())


for i in range(int(input())):
	n = int(input())
	A = list(map(int, input().split()))
	count = 0
	if len(set(A)) == 1 and A[0] == 1:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		for i in range(n - 1):
			if A[i] == 1:
				count += 1
			else:
				break
		if count % 2 != 0:
			print('Second')
		else:
			print('First')


t = int(input())
for abc in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	ans = [0] * n
	ans[-1] = 1
	if n == 1:
		print('First')
	else:
		for i in range(n - 2, -1, -1):
			if ans[i + 1] == 1:
				if a[i] != 1:
					ans[i] = 1
			else:
				ans[i] = 1
		if ans[0] == 1:
			print('First')
		else:
			print('Second')


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


T = int(input())
while T:
	N = int(input())
	a = list(map(int, input().split()))
	ans = True
	for i in range(len(a) - 2, -1, -1):
		if ans == True and a[i] == 1:
			ans = False
		elif a[i] > 1:
			ans = True
		elif ans == False and a[i] == 1:
			ans = True
	if ans:
		print('First')
	else:
		print('Second')
	T -= 1


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


t = int(input())
for v in range(t):
	n = int(input())
	li = list(map(int, input().split()))
	play = 1
	i = 0
	while i < n - 1:
		if li[i] == 1:
			if play == 1:
				play = 2
			else:
				play = 1
		elif li[i + 1] == 1 and i + 1 != n - 1:
			j = i + 1
			count = 0
			while j < n - 1:
				if li[j] != 1:
					break
				else:
					count += 1
				j += 1
			if count % 2 != 0:
				if play == 1:
					play = 2
				else:
					play = 1
		i += 1
	if play == 1:
		print('First')
	else:
		print('Second')


import os
from sys import stdin, stdout

def solve(tc):
	n = int(stdin.readline().strip())
	seq = list(map(int, stdin.readline().split()))
	winning = True
	p = n - 2
	while p >= 0:
		if seq[p] == 1:
			winning ^= True
		else:
			winning = True
		p -= 1
	print('First' if winning else 'Second')
tcs = 1
tcs = int(stdin.readline().strip())
tc = 1
while tc <= tcs:
	solve(tc)
	tc += 1


if True:
	for _ in range(int(input())):
		n = int(input())
		a = list(map(int, input().split()))
		i = 0
		win = True
		j = 0
		k = 0
		if n == 1:
			print('First')
		else:
			for i in range(n):
				if a[i] > 1 and i % 2 == 0:
					print('First')
					break
				elif a[i] > 1 and i % 2 != 0:
					print('Second')
					break
				elif i == n - 1:
					if n % 2 == 0:
						print('Second')
					else:
						print('First')
else:
	pass


import sys
reader = (s.rstrip() for s in sys.stdin)
input = reader.__next__

def gift():
	for _ in range(t):
		n = int(input())
		arry = list(map(int, input().split()))
		res = True
		if arry[0] > 1:
			yield 'First'
		else:
			for i in range(1, n):
				res = not res
				if arry[i] != 1:
					break
			yield ('First' if res else 'Second')
t = int(input())
ans = gift()
print(*ans, sep='\n')


import math
num_cases = int(input())
for _ in range(num_cases):
	n = int(input())
	arr = list(map(int, input().strip().split()))
	first = 1
	found = 0
	for elem in arr:
		if elem > 1:
			found = 1
			break
		else:
			first = 1 - first
	if found == 1:
		if first:
			print('First')
		else:
			print('Second')
	elif first:
		print('Second')
	else:
		print('First')


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	a.reverse()
	flag = True
	for i in range(n):
		if flag == False:
			if a[i] == 1:
				flag = True
		else:
			flag = False
	if flag == False:
		print('First')
	else:
		print('Second')


t = int(input())
pi = 3.1415
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	first = 1
	i = 0
	while i < n:
		if a[i] == 1:
			first ^= 1
		else:
			break
		i += 1
	if i >= n:
		first ^= 1
	if first:
		print('First')
	else:
		print('Second')


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')


for x in range(int(input())):
	n = int(input())
	lst = [int(x) for x in input().split()]
	c = 0
	for x in range(len(lst)):
		if lst[x] != 1 and x % 2 != 0:
			print('Second')
			break
		if lst[x] != 1 and x % 2 == 0:
			print('First')
			break
		if lst[x] == 1:
			c += 1
	if c == len(lst) and c % 2 == 0:
		print('Second')
	if c == len(lst) and c % 2 != 0:
		print('First')


from itertools import groupby
t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split(' ')))
	s = [[x, len(list(y))] for (x, y) in groupby(a)]
	if len(s) == 1 and s[0][0] == 1:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif s[0][0] == 1:
		if s[0][1] % 2 == 0:
			print('First')
		else:
			print('Second')
	else:
		print('First')


i = input
for _ in range(int(i())):
	i()
	c = 1
	for x in (i() + '9').split():
		if x == '1':
			c ^= 1
		else:
			break
	print('SFeicrosntd'[c::2])


for tt in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	end = n
	for i in range(n):
		if l[i] > 1:
			end = i
			break
	l1 = l[:end]
	if l1 == l:
		if len(l1) % 2 == 0:
			print('Second')
		else:
			print('First')
	elif len(l1) == 0:
		print('First')
	elif len(l1) % 2 != 0:
		print('Second')
	elif len(l1) % 2 == 0:
		print('First')


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	b = set(a)
	if n == 1:
		print('First')
	elif 1 not in b:
		print('First')
	elif a.count(1) == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		for i in range(n):
			if a[i] > 1:
				if i % 2 != 0:
					print('Second')
				else:
					print('First')
				break


for tc in range(int(input())):
	n = int(input())
	lst1 = list(map(int, input().split()))
	if n == 1:
		print('First')
	elif min(lst1) > 1:
		print('First')
	else:
		count = 0
		if max(lst1) == 1:
			if n % 2 == 1:
				print('First')
			else:
				print('Second')
		else:
			for i in range(n - 1):
				if lst1[i] == 1:
					count += 1
				else:
					break
			if count % 2 == 0:
				print('First')
			else:
				print('Second')


for _ in range(int(input())):
	n = int(input())
	lst = list(map(int, input().split()))
	if lst[0] > 1:
		print('First')
	elif sum(lst) == len(lst):
		if len(lst) % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		for i in range(len(lst)):
			if lst[i] != 1:
				i -= 1
				if i % 2 == 0:
					print('Second')
				else:
					print('First')
				break


t = int(input())
for _ in range(t):
	n = int(input())
	arr = [int(x) for x in input().split()]
	p1 = True
	p2 = False
	for i in range(n):
		if arr[i] == 1:
			(p1, p2) = (p2, p1)
		else:
			(p1, p2) = (p2, p1)
			break
	if p1:
		print('Second')
	else:
		print('First')


for ii in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	for (jj, kk) in enumerate(a):
		if kk > 1:
			break
	if jj % 2 == 0:
		print('First')
	else:
		print('Second')


for _ in ' ' * int(input()):
	n = int(input())
	a = input().split()
	i = 0
	while a[i] == '1' and i < n - 1:
		i += 1
	print(['First', 'Second'][i % 2 != 0])


from sys import stdin
from collections import deque
mod = 10 ** 9 + 7
import sys
import random
from queue import PriorityQueue
from collections import Counter as cc
from bisect import bisect_right
from bisect import bisect_left
from collections import defaultdict
from math import sqrt, factorial, gcd, log2, inf, ceil
import heapq
input = lambda : sys.stdin.readline().rstrip()
from sys import stdin, stdout
from heapq import heapify, heappush, heappop
from itertools import permutations
from math import factorial as f

def ncr(n, r, p):
	num = den = 1
	for i in range(r):
		num = num * (n - i) % p
		den = den * (i + 1) % p
	return num * pow(den, p - 2, p) % p
import sys
t = int(input())
for _ in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	if 1 not in l:
		print('First')
	else:
		i = 0
		cnt = 0
		while l[i] == 1:
			i += 1
			if i == n:
				break
			cnt += 1
		if cnt % 2 == 0:
			print('First')
		else:
			print('Second')


import sys
import bisect as bi
import math
from collections import defaultdict as dd
input = sys.stdin.readline

def cin():
	return map(int, sin().split())

def ain():
	return list(map(int, sin().split()))

def sin():
	return input()

def inin():
	return int(input())
for _ in range(inin()):
	n = inin()
	l = ain()
	w = 1
	c = 0
	for i in range(n):
		if l[i] == 1:
			c += 1
		else:
			break
	if c == n and n % 2 == 0 or (c % 2 == 1 and c != n):
		w = 0
	if w:
		print('First')
	else:
		print('Second')


cases = []
t = int(input())
for i in range(t):
	input()
	a = list(map(int, input().strip().split()))
	cases.append(a)

def solve(case):
	d = 0
	for x in case[:-1]:
		if x == 1:
			d += 1
		else:
			break
	if d % 2 == 0:
		print('First')
	else:
		print('Second')
for case in cases:
	solve(case)


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


for _ in range(int(input())):
	n = int(input())
	lis = list(map(int, input().split()))
	if lis[0] > 1:
		print('First')
	else:
		i = 0
		while i < n and lis[i] == 1:
			i += 1
		if i == n and n % 2 == 0:
			print('Second')
		elif i == n and n % 2 != 0:
			print('First')
		elif i < n and i % 2 == 0:
			print('First')
		else:
			print('Second')


t = int(input())
while t:
	n = int(input())
	p = list(map(int, input().split()))
	ch = 0
	i = 0
	while i < n:
		if i == n - 1:
			ch += 1
			i += 1
		elif p[i] == 1:
			i += 1
			ch += 1
		elif p[i + 1] == 1 and i < n - 2:
			co = 0
			k = i
			while k < n - 2:
				if p[k + 1] == 1:
					co += 1
					k += 1
				else:
					break
			if co % 2 == 0:
				p[i] = 1
				ch += 1
			else:
				i += 1
				ch += 1
		else:
			p[i] = 1
			ch += 1
	if ch % 2 == 0:
		print('Second')
	else:
		print('First')
	t = t - 1


for i in range(int(input())):
	a = int(input())
	lis = [x for x in map(int, input().split())]
	i = 0
	while i < len(lis) and lis[i] == 1:
		i += 1
	if i == len(lis):
		if i % 2 == 1:
			print('First')
		else:
			print('Second')
	elif i % 2 == 1:
		print('Second')
	else:
		print('First')


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


import io
import os
input = io.BytesIO(os.read(0, os.fstat(0).st_size)).readline

def get_str():
	return input().decode().strip()

def rint():
	return map(int, input().split())

def oint():
	return int(input())
t = oint()
for _ in range(t):
	n = oint()
	a = list(rint())
	if a.count(1) == n:
		if n % 2:
			print('First')
		else:
			print('Second')
	else:
		for i in range(n):
			if a[i] != 1:
				if i % 2:
					print('Second')
				else:
					print('First')
				break


t = int(input(''))
while t > 0:
	n = int(input(''))
	a = list(map(int, input().split()))
	flag = 0
	count = 0
	for i in a:
		if i == 1:
			flag = 1 - flag
			count += 1
		if i != 1:
			break
	if count == n:
		flag = 1 - flag
	if flag == 0:
		print('First')
	elif flag == 1:
		print('Second')
	t -= 1


t = int(input())
while t > 0:
	n = int(input())
	arr = list(map(int, input().strip().split()))[:n]
	flag = 0
	cur1 = 0
	cur2 = 0
	for i in range(n):
		if arr[i] != 1:
			flag = 1
			break
	for i in range(n):
		if arr[i] > 1 and i % 2 == 0:
			cur1 = 1
			break
		elif arr[i] > 1 and i % 2 == 1:
			cur2 = 1
			break
	if cur1 == 1:
		print('First')
	elif cur2 == 1:
		print('Second')
	elif flag == 0:
		if n % 2 == 1:
			print('First')
		else:
			print('Second')
	t = t - 1


for _ in range(int(input())):
	n = int(input())
	a = [int(i) for i in input().split()]
	zeros = 0
	for el in a:
		if el == 1:
			zeros += 1
		else:
			break
	if len(a) == zeros and zeros % 2 == 0:
		print('Second')
	elif len(a) == zeros and zeros % 2 == 1:
		print('First')
	elif zeros % 2 == 0:
		print('First')
	else:
		print('Second')


from math import log2, ceil, floor
from collections import defaultdict, OrderedDict, Counter, deque
from heapq import heappush, heappop, heapify
import re

def inp():
	return input()

def list_inp():
	return list(map(int, input().split()))

def map_inp():
	return map(int, input().split())

def int_inp():
	return int(input())

def float_int():
	return float(input())

def isprime(n):
	if n <= 1:
		return False
	if n <= 3:
		return True
	if n % 2 == 0 or n % 3 == 0:
		return False
	i = 5
	while i * i <= n:
		if n % i == 0 or n % (i + 2) == 0:
			return False
		i = i + 6
	return True
for _ in range(int_inp()):
	n = int_inp()
	l = list_inp()
	turn = 1
	i = 0
	while l[i] == 1 and i < n:
		if turn == 1:
			turn = 2
		else:
			turn = 1
		i += 1
		if i >= n:
			break
	if i == n:
		if turn == 2:
			print('First')
		else:
			print('Second')
	elif turn == 1:
		print('First')
	else:
		print('Second')


import sys
input = sys.stdin.readline
for q in range(int(input())):
	n = int(input())
	a = [int(x) for x in input().split()]
	if n & 1:
		ans = 'First'
	else:
		ans = 'Second'
	for i in range(len(a)):
		if a[i] > 1:
			if i & 1:
				ans = 'Second'
			else:
				ans = 'First'
			break
	print(ans)


f = lambda : map(int, input().split())
for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	f = s = 0
	count = 0
	for i in a:
		if i > 1:
			break
		else:
			count += 1
	if count % 2 == 1 and count != len(a):
		print('Second')
	elif count % 2 == 0 and count != len(a):
		print('First')
	elif count % 2 == 1 and count == len(a):
		print('First')
	elif count % 2 == 0 and count == len(a):
		print('Second')


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

		def change(temp):
			if temp == 'First':
				return 'Second'
			else:
				return 'First'
		n = int(input())
		a = list(map(int, input().split()))
		ans = 'First'
		for i in range(len(a) - 1):
			if a[i] == 1:
				ans = change(ans)
			else:
				break
		print(ans)
main()


from collections import defaultdict
inputs_cnt = int(input())
for input_index in range(inputs_cnt):
	heaps_count = input()
	heaps = map(int, input().split())
	sequence_len = 0
	for heap in heaps:
		if heap == 1:
			sequence_len += 1
		else:
			break
	else:
		if sequence_len % 2:
			print('First')
		else:
			print('Second')
		continue
	if sequence_len % 2:
		print('Second')
	else:
		print('First')


def func(A):
	curr = 0
	count = 0
	while A and A[-1] == 1:
		A.pop()
		count += 1
	if not A:
		if count % 2 == 0:
			curr = 1
	temp = []
	one = 0
	for i in range(len(A) - 1, -1, -1):
		if A[i] == 1:
			temp.append(one)
			one += 1
		else:
			temp.append(one)
			one = 0
	temp = temp[::-1]
	for i in range(len(A) - 1):
		if A[i] == 1:
			curr = 1 - curr
		elif temp[i] % 2 == 1:
			curr = 1 - curr
	if curr == 0:
		return 'First'
	return 'Second'
t = int(input())
for i in range(t):
	n = int(input())
	A = list(map(int, input().split()))
	print(func(A))


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	if n == 1:
		print('First')
		continue
	nxt = 1
	for i in range(n - 2, -1, -1):
		if nxt == 1:
			if l[i] != 1:
				nxt = 1
			else:
				nxt = 2
		else:
			nxt = 1
	if nxt == 1:
		print('First')
	else:
		print('Second')


t = int(input())
for _ in range(t):
	n = int(input())
	al = list(map(int, input().split()))
	stack = []
	for i in range(n):
		if al[i] == 1:
			stack.append(i)
	if len(stack) == 0:
		print('First')
	else:
		chance = True
		can = 0
		for i in range(n - 1):
			if al[i] == 1:
				if chance == True:
					chance = False
				else:
					chance = True
			else:
				break
		if chance == True:
			print('First')
		else:
			print('Second')


test = int(input())
for i in range(test):
	n = int(input())
	arr = [int(i) for i in input().split()]
	win = 'First'
	i = 0
	cnt = 0
	for i in range(n - 1):
		if arr[i] == 1:
			cnt += 1
		else:
			break
	if cnt % 2:
		print('Second')
	else:
		print('First')


for _ in range(int(input())):
	n = int(input())
	a = [int(x) for x in input().split()]
	first = True
	for i in range(-2, -n - 1, -1):
		if a[i] == 1:
			first = not first
		else:
			first = True
	if first:
		print('First')
	else:
		print('Second')


def switch_player(player: str):
	if player == 'First':
		return 'Second'
	else:
		return 'First'
t = int(input())
_result = ''
for _t in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	result = 'First'
	if max(arr) == 1:
		if n % 2 == 0:
			result = 'Second'
		else:
			result = 'First'
	else:
		for a in arr:
			if a == 1:
				result = switch_player(result)
			else:
				break
	_result += result + '\n'
print(_result)


import math
from collections import deque
from sys import stdin, stdout
from string import ascii_letters
input = stdin.readline
letters = ascii_letters[:26]
for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	was = 0
	line = 0
	last = -1
	started = -1
	res = 1
	for i in range(n - 1):
		if arr[i] == 1:
			if not line:
				if started == -1:
					started = res
				line = 1
			res = not res
		else:
			if line:
				line = 0
				if was and started != res:
					res = started
				started = -1
			was = 1
	if line and was and (started != res):
		res = started
		started = -1
	print('First' if res else 'Second')


test = int(input())
for t in range(test):
	n = int(input())
	lst1 = list(map(int, input().split()))
	for x in range(len(lst1)):
		if lst1[x] > 1:
			k = x
			if k == 1 or k % 2 != 0:
				print('Second')
			else:
				print('First')
			break
	lst1.sort()
	if lst1[len(lst1) - 1] == 1:
		if len(lst1) % 2 == 0:
			print('Second')
		else:
			print('First')


t = int(input())
for _ in range(t):
	n = int(input())
	arr = [int(x) for x in input().split()]
	if n == 1:
		print('First')
	elif set(arr) == {1}:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		for i in range(n):
			if arr[i] > 1:
				break
		if i % 2 == 0:
			print('First')
		else:
			print('Second')


import math
from collections import *
import sys
from functools import reduce
import time
from itertools import groupby

def input():
	return sys.stdin.readline()

def get_ints():
	return map(int, input().strip().split())

def get_list():
	return list(get_ints())

def get_string():
	return list(input().strip().split())

def printxsp(*args):
	return print(*args, end='')

def printsp(*args):
	return print(*args, end=' ')
DIRECTIONS = [(+0, +1), (+0, -1), (+1, +0), (+1, -1)]
NEIGHBOURS = [(-1, -1), (-1, +0), (-1, +1), (+0, -1), (+1, +1), (+1, +0), (+1, -1), (+0, +1)]
CAPS_ALPHABETS = {chr(i + ord('A')): i for i in range(26)}
SMOL_ALPHABETS = {chr(i + ord('a')): i for i in range(26)}
INF = float('inf')
S34t = time.time()
for _testcases_ in range(int(input())):
	n = int(input())
	li = get_list()
	if n == 1:
		print('First')
	else:
		pos = -1
		for i in range(n):
			if li[i] == 1:
				pos = i
			else:
				break
		if pos == -1:
			print('First')
		elif pos == n - 1:
			if n & 1:
				print('First')
			else:
				print('Second')
		elif pos & 1:
			print('First')
		else:
			print('Second')
S34p = time.time()


import sys
inputlist = sys.stdin.readlines()
number_of_testcases = int(inputlist[0].strip())
for i in range(number_of_testcases):
	winnerlist = ['First', 'Second']
	n = int(inputlist[2 * i + 1].strip())
	numberslist = list(map(int, inputlist[2 * i + 2].strip().split(' ')))
	leadingones = 0
	for j in range(n):
		if numberslist[j] == 1:
			leadingones += 1
		else:
			break
	greater_number_available_flag = 1
	index = leadingones % 2
	for k in range(j, n):
		if numberslist[k] > 1:
			greater_number_available_flag = 0
			break
	index = (index + greater_number_available_flag) % 2
	print(winnerlist[index])


test = int(input())
k = 1
while k <= test:
	k += 1
	n = int(input())
	a = list(map(int, input().split()))
	allone = 1
	for i in a:
		if i != 1:
			allone = 0
			break
	rem = n % 2
	if allone and rem == 0:
		print('Second')
	elif allone and rem != 0:
		print('First')
	elif allone == 0:
		gc = 0
		for i in a:
			if i != 1:
				break
			if i == 1:
				gc = 1 - gc
		if gc == 0:
			print('First')
		else:
			print('Second')


t = int(input())
while t > 0:
	t -= 1
	n = int(input())
	l1 = [int(i) for i in input().split(' ')]
	k = 0
	for i in range(n):
		k += 1
		if l1[i] != 1:
			break
	if k & 1:
		print('First')
	else:
		print('Second')


t = int(input())
for case in range(t):
	n = int(input())
	a = input().split()
	num1s = 0
	for i in range(n):
		if int(a[i]) == 1:
			num1s += 1
		else:
			if num1s % 2 == 0:
				print('First')
			else:
				print('Second')
			break
	if num1s == n:
		if num1s % 2 == 0:
			print('Second')
		else:
			print('First')


def ques2(n, a):
	for i in range(n):
		if a[i] != 1:
			break
	if i % 2 == 0:
		print('First')
	else:
		print('Second')
t = int(input())
for i in range(t):
	n = int(input())
	a = [int(i) for i in input().split()]
	ans = ques2(n, a)
	ans


q = int(input())
for t in range(q):
	n = int(input())
	A = list(map(int, input().split()))
	w = [0] * n
	w[-1] = 1
	for i in range(n - 2, -1, -1):
		if w[i + 1] == 1:
			if A[i] == 1:
				w[i] = 0
			else:
				w[i] = 1
		else:
			w[i] = 1
	if w[0] == 1:
		print('First')
	else:
		print('Second')


t = int(input())
for i in range(t):
	m = input()
	l = input().split()
	first = True
	somethingelse = False
	for i in l:
		if i == '1':
			first = not first
		else:
			somethingelse = True
			break
	if not somethingelse:
		first = not first
	if first:
		print('First')
	else:
		print('Second')


from itertools import groupby
for _ in range(int(input())):
	n = int(input())
	a = [int(_) for _ in input().split()]
	if all((_ == 1 for _ in a)):
		winner = n % 2
	else:
		for (i, a) in enumerate(a):
			if a > 1:
				winner = not i % 2
				break
	print('First' if winner else 'Second')


t = int(input())
for _ in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	if sum(l) == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		i = 1
		while i < n and l[i - 1] == 1:
			i += 1
		if i % 2 == 0:
			print('Second')
		else:
			print('First')


import math
t = int(input())
for _ in range(t):
	n = int(input())
	ali = list(map(int, input().split()))
	con = -1
	f = 0
	for i in range(n):
		if ali[i] == 1:
			if con == -1:
				con = 1
			elif con == 1:
				con = 2
			else:
				con = 1
		else:
			f = 1
			break
	if con == -1:
		print('First')
	elif f == 1:
		if con == 2:
			print('First')
		else:
			print('Second')
	elif con == 1:
		print('First')
	else:
		print('Second')


import sys

def get_single_int():
	return int(sys.stdin.readline().strip())

def get_string():
	return sys.stdin.readline().strip()

def get_ints():
	return map(int, sys.stdin.readline().strip().split())

def get_list():
	return list(map(int, sys.stdin.readline().strip().split()))
for i in range(get_single_int()):
	n = get_single_int()
	ar = get_list()
	maxi = max(ar)
	if maxi == 1:
		if n % 2 == 0:
			print('Second')
			continue
		else:
			print('First')
			continue
	else:
		count = 0
		for j in range(n):
			if ar[j] != 1:
				break
			count += 1
		if count % 2 == 0:
			print('First')
		else:
			print('Second')


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


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


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


def cin():
	return map(int, input().split())
for t in range(int(input())):
	n = int(input())
	a = list(cin())
	f = 1
	i = 0
	while i < n - 1 and a[i] == 1:
		f = (f + 1) % 2
		i += 1
	if f == 0:
		print('Second')
	else:
		print('First')


import sys
from functools import lru_cache, cmp_to_key
from heapq import merge, heapify, heappop, heappush, nsmallest
from math import ceil, floor, gcd, fabs, factorial, fmod, sqrt, inf
from collections import defaultdict as dd, deque, Counter as C
from itertools import combinations as comb, permutations as perm
from bisect import bisect_left as bl, bisect_right as br, bisect
from time import perf_counter
from fractions import Fraction
from decimal import Decimal
mod = pow(10, 9) + 7
mod2 = 998244353

def data():
	return sys.stdin.readline().strip()

def out(var):
	sys.stdout.write(str(var) + '\n')

def outa(*var, end='\n'):
	sys.stdout.write(' '.join(map(str, var)) + end)

def l():
	return list(sp())

def sl():
	return list(ssp())

def sp():
	return map(int, data().split())

def ssp():
	return map(str, data().split())

def l1d(n, val=0):
	return [val for i in range(n)]

def l2d(n, m, val=0):
	return [l1d(n, val) for j in range(m)]
for _ in range(int(data())):
	n = int(data())
	arr = l()
	answer = -1
	for i in range(n):
		answer = i & 1
		if arr[i] != 1:
			break
	out(('First', 'Second')[answer == 1])


def stones(A):
	n = len(A)
	if n == 1:
		print('First')
		return
	flag = None
	if A[-2] != 1:
		flag = True
	else:
		flag = False
	for i in range(n - 3, -1, -1):
		if flag:
			if A[i] == 1:
				flag = False
			else:
				flag = True
		else:
			flag = True
	if flag:
		print('First')
	else:
		print('Second')
t = int(input())
for i in range(t):
	n = int(input())
	A = [int(i) for i in input().split()][:n]
	stones(A)


for _ in range(int(input())):
	piles = int(input())
	stones = list(map(int, input().split()))
	c = u = 0
	while u < piles - 1 and stones[u] == 1:
		c += 1
		u += 1
	if c % 2 == 0:
		print('First')
	else:
		print('Second')


import math, sys
from collections import defaultdict, Counter, deque
INF = float('inf')
MOD = 1000000007

def gcd(a, b):
	while b:
		(a, b) = (b, a % b)
	return a

def isPrime(n):
	if n <= 1:
		return False
	i = 2
	while i ** 2 <= n:
		if n % i == 0:
			return False
		i += 1
	return True

def primeFactors(n):
	factors = []
	i = 2
	while i ** 2 <= n:
		while n % i == 0:
			factors.append(i)
			n //= i
		i += 1
	if n > 1:
		factors.append(n)
	return factors

def vars():
	return map(int, input().split())

def array():
	return list(map(int, input().split()))

def cnt(s, sub):
	c = 0
	for i in range(len(s) - len(sub) + 1):
		for j in range(i, i + len(sub)):
			if s[j] != sub[j - i]:
				break
		else:
			c += 1
	return c

def main():
	n = int(input())
	arr = array()
	res = 0
	one = arr.count(1)
	if one == 0:
		print('First')
		return
	elif one == n:
		if n % 2 == 1:
			print('First')
		else:
			print('Second')
		return
	ans = 0
	for i in range(n):
		if arr[i] > 1:
			ans = res
			break
		res ^= 1
	if ans == 0:
		print('First')
	else:
		print('Second')
t = int(input())
for _ in range(t):
	main()


import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
	n = int(input())
	piles = list(map(int, input().split()))
	k = 0
	cycle = True
	for i in piles:
		if i == 1 and cycle:
			k += 1
		else:
			cycle = False
	if piles == [1] * n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif k % 2 == 0:
		print('First')
	else:
		print('Second')


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().strip().split()))[:n]
	count = 0
	for j in range(n):
		if a[j] > 1:
			rem = j % 2
			if rem == 0:
				print('First')
				break
			else:
				print('Second')
				break
		else:
			count += 1
	if count == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')


tt = int(input())
for t in range(tt):
	n = int(input())
	a = list(map(int, input().split()))
	ch = 1
	for i in range(len(a) - 1):
		if a[i] == 1:
			ch *= -1
			continue
		break
	if ch == 1:
		print('First')
	else:
		print('Second')


from sys import stdin, setrecursionlimit, stdout
setrecursionlimit(100)
from collections import deque
from math import sqrt, floor, ceil, log, log2, log10, pi, gcd, sin, cos, asin
from heapq import heapify, heappop, heappush, heapreplace, heappushpop
from bisect import bisect_right, bisect_left

def ii():
	return int(stdin.readline())

def fi():
	return float(stdin.readline())

def mi():
	return map(int, stdin.readline().split())

def fmi():
	return map(float, stdin.readline().split())

def li():
	return list(mi())

def si():
	return stdin.readline().rstrip()

def lsi():
	return list(si())
mod = 1000000007
res = ['NO', 'YES']
test = 1
test_case = ii()
while test <= test_case:
	test += 1
	n = ii()
	a = li()
	x = 0
	for i in a:
		x += 1
		if i > 1:
			break
	print(['Second', 'First'][x % 2])


n = int(input())
for ele in range(n):
	t = int(input())
	arr = [int(x) for x in input().split()]
	sum = 0
	c = 0
	for i in arr:
		if i == 1:
			sum = sum + 1
			c = c + 1
		else:
			break
	if sum % 2 != 0:
		if c == t:
			print('First')
		else:
			print('Second')
	elif c == t:
		print('Second')
	else:
		print('First')


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


t = int(input())
for i in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	par = 1
	no = arr.count(1)
	if no == n:
		if no % 2 == 0:
			print('Second')
		else:
			print('First')
		continue
	else:
		for j in range(n):
			if arr[j] > 1:
				if par == 1:
					print('First')
				else:
					print('Second')
				break
			else:
				par = -par


import re
for s in [*open(0)][2::2]:
	m = re.match('(?:1 )+', s)
	print('FSiercsotn d'[m.end() // 2 % 2 if m else 0::2])


t = int(input())
for tt in range(t):
	n = int(input())
	a = [int(x) for x in input().split(' ')]
	a.reverse()
	status = []
	status.append('a')
	for i in range(1, n):
		if status[-1] == 'u':
			status.append('a')
		elif status[-1] == 'a':
			if a[i] == 1:
				status.append('u')
			else:
				status.append('m')
		elif a[i] == 1:
			status.append('u')
		else:
			status.append('m')
	if status[-1] == 'u':
		print('Second')
	else:
		print('First')


from sys import stdin
for _ in range(int(stdin.readline())):
	n = int(stdin.readline())
	a = list(map(int, stdin.readline().split()))
	has_other = False
	first_turn = True
	for i in a:
		if i == 1:
			first_turn = not first_turn
		else:
			has_other = True
			break
	if not has_other:
		first_turn = not first_turn
	print(['Second', 'First'][first_turn])


t = int(input())
for _ in range(t):
	n = int(input())
	A = list(map(int, input().split()))
	flg = 1
	for a in A[:-1]:
		if a == 1:
			flg = 1 - flg
		else:
			break
	if flg == 1:
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	l = list(input().split())
	if len(set(l)) == 1 and l[0] == '1':
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		i = 0
		ans = 0
		while i < n and l[i] == '1':
			ans += 1
			i += 1
		if ans % 2 == 0:
			print('First')
		else:
			print('Second')


import math
import collections
t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	first = True
	second = False
	if len(a) == 1:
		print('First')
		continue
	if a[0] != 1:
		print('First')
		continue
	for i in range(len(a)):
		if a[i] == 1 and first:
			first = False
			second = True
		elif a[i] == 1 and (not first):
			first = True
			second = False
		elif second:
			print('Second')
			break
		else:
			print('First')
			break
	else:
		if first:
			print('Second')
		else:
			print('First')


t = int(input())
for _ in range(t):
	n = int(input())
	nums = [int(i) for i in input().split()]
	if n == 1:
		print('First')
		continue
	i = 0
	while i < n and nums[i] == 1:
		i += 1
	if i % 2 == 0 and i != n or (i % 2 == 1 and i == n):
		print('First')
	else:
		print('Second')


import math
import os
import random
import re
import sys
import copy
from collections import Counter

def bs(arr, x, l, r):
	if l <= r:
		mid = (r + l) // 2
		if arr[mid] == x:
			return mid
		elif arr[mid] < x:
			return bs(arr, x, mid + 1, r)
		else:
			return bs(arr, x, l, mid - 1)
	else:
		return -1

def solve():
	for _ in range(int(input())):
		n = int(input())
		l = list(map(int, input().strip().split()))
		x = l.count(1)
		if n == 1 or x == 0:
			print('First')
			continue
		y = n - x
		i = 0
		f = 1
		while i < n:
			if i == n - 1:
				if f == 1:
					f = 2
				else:
					f = 1
				break
			if l[i] == 1:
				if f == 1:
					f = 2
				else:
					f = 1
				x -= 1
				i += 1
			elif l[i] > 1:
				if l[i + 1] == 1:
					j = i + 1
					c = 0
					while l[j] == 1:
						c += 1
						j += 1
						if j == n:
							break
					if j == n:
						if c % 2 == 0:
							i += 1
						else:
							l[i] = 1
							x += 1
					elif c % 2 == 0:
						l[i] = 1
						x += 1
					else:
						i += 1
				else:
					i += 1
					y -= 1
					continue
				y -= 1
				if f == 1:
					f = 2
				else:
					f = 1
		if f == 1:
			print('Second')
		else:
			print('First')
solve()


import sys
from collections import defaultdict
mod = 10 ** 9 + 7
INF = float('inf')

def inp():
	return int(sys.stdin.readline())

def inpl():
	return list(map(int, sys.stdin.readline().split()))
t = inp()
for _ in range(t):
	n = inp()
	a = inpl()
	cnt = 0
	for i in range(n - 1):
		if a[i] != 1:
			break
		cnt += 1
	print('Second' if cnt % 2 else 'First')


numberOFTestCase = int(input())
for case in range(numberOFTestCase):
	n = int(input())
	piles = [int(x) for x in input().split()]
	turn = 1
	isOne = True
	for i in range(n):
		if piles[i] == 1:
			turn = 1 if turn == 2 else 2
		else:
			isOne = False
			break
	if isOne:
		turn = 2 if n % 2 == 0 else 1
	print('First') if turn == 1 else print('Second')


def main():
	t = int(input())
	for __ in range(t):
		n = int(input())
		a = list(map(int, input().split()))
		index = 1
		count = 0
		for i in a:
			if i == 1:
				count += 1
		if count == n:
			if n % 2 == 0:
				print('Second')
			else:
				print('First')
		else:
			i = 0
			while i < n:
				if a[i] == 1:
					index += 1
				elif i + 1 < n and a[i + 1] == 1:
					while i + 1 < n and a[i + 1] == 1:
						i += 1
				i += 1
			if index % 2 == 0:
				print('Second')
			else:
				print('First')
main()


def solve():
	n = int(input())
	a = [int(item) for item in input().split()]
	if n == 1:
		print('First')
		return
	pred = 1
	for i in range(n - 2, -1, -1):
		if a[i] == 1:
			pred ^= 1
		else:
			pred = 1
	if pred == 1:
		print('First')
	else:
		print('Second')
t = int(input())
while t > 0:
	solve()
	t -= 1


for _ in range(int(input())):
	n = int(input().strip())
	arr = list(map(int, input().strip().split(' ')))
	bac = [0 for i in range(n)]
	if n == 1:
		print('First')
		continue
	i = n - 1
	bac[i] = 'a'
	while i > 0:
		i -= 1
		if arr[i] == 1:
			if bac[i + 1] == 'a':
				bac[i] = 'b'
			else:
				bac[i] = 'a'
		else:
			bac[i] = 'a'
	if bac[0] != bac[-1]:
		print('Second')
	else:
		print('First')


import os
import operator
import sys
from _collections import defaultdict
import bisect
from io import BytesIO, IOBase

def inar():
	return [int(k) for k in input().split()]

def power(x, p, m):
	res = 1
	while p:
		if p & 1:
			res = res * x % m
		x = x * x % m
		p >>= 1
	return res

def main():
	for _ in range(int(input())):
		n = int(input())
		arr = inar()
		count = 0
		for i in range(n):
			if arr[i] == 1:
				count += 1
			else:
				break
		if count == n:
			if count % 2 == 0:
				print('Second')
			else:
				print('First')
			continue
		if count % 2 == 0:
			print('First')
		else:
			print('Second')
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')
main()


import random
T = int(input())
for _ in range(T):
	N = int(input())
	arr = [int(i) for i in input().split()]
	flag = False
	temp = -1
	for i in range(N):
		if arr[i] != 1:
			temp = i
			flag = True
			break
	if not flag:
		if N % 2 != 0:
			print('First')
		else:
			print('Second')
	elif temp % 2 == 0:
		print('First')
	else:
		print('Second')


t = int(input())
for i in range(t):
	n = int(input())
	a = [int(s) for s in input().split()]
	m = True
	for j in range(n):
		if a[j] != 1:
			m = False
	if m:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	o = 0
	for j in range(n):
		if a[j] != 1:
			break
		o += 1
	if not m:
		if o % 2 == 0:
			print('First')
		else:
			print('Second')


import sys
import math
import collections
import operator as op
from collections import deque
from math import gcd, inf, sqrt, pi, cos, sin, ceil, log2
from bisect import bisect_right, bisect_left
from functools import reduce
from sys import stdin, stdout, setrecursionlimit
setrecursionlimit(2 ** 20)

def factorial(n):
	if n == 0:
		return 1
	return n * factorial(n - 1)

def ncr(n, r):
	r = min(r, n - r)
	numer = reduce(op.mul, range(n, n - r, -1), 1)
	denom = reduce(op.mul, range(1, r + 1), 1)
	return numer // denom

def prime_factors(n):
	i = 2
	factors = []
	while i * i <= n:
		if n % i:
			i += 1
		else:
			n //= i
			factors.append(i)
	if n > 1:
		factors.append(n)
	return list(factors)

def isPowerOfTwo(x):
	return x and (not x & x - 1)

def factors(n):
	return list(set(reduce(list.__add__, ([i, n // i] for i in range(1, int(n ** 0.5) + 1) if n % i == 0))))
MOD = 1000000007
PMOD = 998244353
T = 1
T = int(stdin.readline())
for _ in range(T):
	n = int(stdin.readline())
	a = list(map(int, stdin.readline().rstrip().split()))
	ans = 1
	if n == sum(a):
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
		continue
	for i in range(n):
		if a[i] != 1:
			break
		else:
			ans ^= 1
	if ans == 1:
		print('First')
	else:
		print('Second')


def answer(n, A):
	count = 0
	for i in range(n - 1):
		if A[i] > 1:
			if count % 2 == 0:
				return 'First'
			else:
				return 'Second'
		if A[i] == 1:
			count += 1
	if n % 2 == 0:
		return 'Second'
	else:
		return 'First'
t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	print(answer(n, a))


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	ans = 'r'
	i = 0
	while i < n:
		if i % 2 == 0 and l[i] == 1:
			ans = 'f'
			i += 1
		elif i % 2 != 0 and l[i] == 1:
			ans = 's'
			i += 1
		else:
			break
	if n - i != 0:
		if ans == 'f':
			print('Second')
		elif ans == 's':
			print('First')
		else:
			print('First')
	elif ans == 'f':
		print('First')
	else:
		print('Second')


from sys import stdin, stdout
from itertools import combinations
from collections import defaultdict, Counter
import math

def listIn():
	return list(map(int, stdin.readline().strip().split()))

def stringListIn():
	return [x for x in stdin.readline().split()]

def intIn():
	return int(stdin.readline())

def stringIn():
	return stdin.readline().strip()
t = intIn()
while t > 0:
	t -= 1
	n = intIn()
	a = listIn()
	ans = []
	cnt = 0
	for i in range(n):
		if a[i] > 1:
			break
	if i % 2 == 0:
		print('First')
	else:
		print('Second')


for x in range(int(input())):
	n = int(input())
	b = list(map(int, input().split()))
	r = 0
	k = 0
	i = 0
	while r == 0 and i < n:
		if b[i] == 1:
			k += 1
		else:
			r = 1
		i += 1
	if k == 0:
		print('First')
	elif k % 2 != 0 and k == n:
		print('First')
	elif k % 2 == 0 and k == n:
		print('Second')
	elif k % 2 == 0:
		print('First')
	else:
		print('Second')


rw = int(input())
for ewqr in range(rw):
	n = int(input())
	a = list(map(int, input().split()))
	asum = sum(a) - 1
	a1 = a.count(1)
	if a[n - 1] == 1:
		a1 -= 1
	ss = ['First', 'Second']
	s = ''
	if n == 1:
		print('First')
		continue
	if n - 1 == a1:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
		continue
	i = n - 2
	for i in range(n - 2, -1, -1):
		if a[i] != 1:
			s = ss[i % 2]
	if s == '':
		s = ss[0]
	print(s)


for _ in range(int(input())):
	n = int(input())
	l = [int(x) for x in input().split()]
	if sum(l) == len(l):
		if len(l) % 2 == 0:
			print('Second')
		else:
			print('First')
	elif l[0] == 1:
		for i in l:
			if i != 1:
				if l.index(i) % 2 == 0:
					print('First')
					break
				else:
					print('Second')
					break
	else:
		print('First')


import sys
debug = '--debug' in sys.argv or '-d' in sys.argv
t = int(input())
for case_num in range(t):
	if debug:
		print(f'Testcase #{case_num}')
	input()
	piles = map(int, input().split())
	for (i, num_stones) in enumerate(piles):
		if num_stones > 1:
			break
	print(('First', 'Second')[i & 1])


t = int(input())
while t:
	n = int(input())
	arr = [int(i) for i in input().split()]
	if arr != [1] * n:
		ans = 0
		it = 0
		while arr[it] == 1:
			it += 1
			ans = 1 - ans
		print('First') if ans == 0 else print('Second')
	elif n % 2 == 0:
		print('Second')
	else:
		print('First')
	t -= 1


import math as mt
import sys, string
input = sys.stdin.readline
L = lambda : list(map(int, input().split()))
Ls = lambda : list(input().split())
M = lambda : map(int, input().split())
I = lambda : int(input())
from collections import defaultdict
t = I()
for _ in range(t):
	n = I()
	l = L()
	x = [0] * n
	x[n - 1] = 1
	if n == 1:
		print('First')
	else:
		for i in range(n - 2, -1, -1):
			if x[i + 1] == 1:
				if l[i] == 1:
					x[i] == 0
				else:
					x[i] = 1
			else:
				x[i] = 1
		if x[0]:
			print('First')
		else:
			print('Second')


import sys

def input():
	return sys.stdin.readline().strip()

def iinput():
	return int(input())

def rinput():
	return map(int, sys.stdin.readline().strip().split())

def get_list():
	return list(map(int, sys.stdin.readline().strip().split()))
mod = int(1000000000.0) + 7
for _ in range(iinput()):
	n = iinput()
	a = get_list()
	o = a.count(1)
	if n == 1:
		print('First')
	elif n == o:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif o == 0:
		print('First')
	elif a[0] != 1:
		print('First')
	else:
		i = 0
		temp = 0
		while a[i] == 1:
			temp += 1
			i += 1
		if temp % 2 == 0:
			print('First')
		else:
			print('Second')


def Solve(arr):
	l = len(arr)
	c = arr.count(1)
	if c == l:
		if c % 2 == 0:
			return 'Second'
		return 'First'
	winner = 'First'
	i = 0
	while arr[i] == 1:
		i += 1
	if i % 2 == 0:
		return 'First'
	return 'Second'
T = int(input())
for _ in range(T):
	n = int(input())
	arr = list(map(int, input().split()))
	print(Solve(arr))


import sys
input = sys.stdin.readline
t = int(input())
for ii in range(t):
	n = int(input())
	a = [int(i) for i in input().split() if i != '\n']
	one = 0
	for i in a:
		if i == 1:
			one += 1
		else:
			break
	if one == n:
		if one & 1:
			print('First')
		else:
			print('Second')
	elif one & 1:
		print('Second')
	else:
		print('First')


import sys
input = sys.stdin.buffer.readline

def I():
	return list(map(int, input().split()))

def sieve(n):
	a = [1] * n
	for i in range(2, n):
		if a[i]:
			for j in range(i * i, n, i):
				a[j] = 0
	return a

def rec(i, p):
	if dp[i][p] != -1:
		return dp[i][p]
	if i == n - 1:
		dp[i][p] = p
		return p
	if arr[i] == 1:
		dp[i][p] = rec(i + 1, 1 - p)
		return dp[i][p]
	p1 = rec(i + 1, 1 - p)
	p2 = rec(i + 1, p)
	if p1 == p or p2 == p:
		dp[i][p] = p
	else:
		dp[i][p] = 1 - p
	return dp[i][p]
for __ in range(int(input())):
	n = int(input())
	arr = I()
	dp = [[-1, -1] for i in range(n)]
	for i in reversed(range(n)):
		rec(i, 0)
		rec(i, 1)
	ans = rec(0, 1)
	if ans == 1:
		print('First')
	else:
		print('Second')


t = int(input())
while t != 0:
	n = int(input())
	a = list(map(int, input().split()))[:n]
	x = set(a)
	y = list(x)
	if len(y) == 1 and y[0] == 1 and (n % 2 == 0):
		print('Second')
	elif len(y) == 1 and y[0] == 1 and (n % 2 != 0):
		print('First')
	elif a[0] != 1:
		print('First')
	else:
		for i in range(n):
			if a[i] == 1:
				continue
			elif i % 2 == 0:
				print('First')
				break
			elif i % 2 != 0:
				print('Second')
				break
	t -= 1


from sys import stdin, stdout
import bisect
import math

def st():
	return list(stdin.readline().strip())

def inp():
	return int(stdin.readline())

def li():
	return list(map(int, stdin.readline().split()))

def mp():
	return map(int, stdin.readline().split())

def pr(n):
	stdout.write(str(n) + '\n')

def soe(limit):
	l = [1] * (limit + 1)
	prime = []
	for i in range(2, limit + 1):
		if l[i]:
			for j in range(i * i, limit + 1, i):
				l[j] = 0
	for i in range(2, limit + 1):
		if l[i]:
			prime.append(i)
	return prime

def segsoe(low, high):
	limit = int(high ** 0.5) + 1
	prime = soe(limit)
	n = high - low + 1
	l = [0] * (n + 1)
	for i in range(len(prime)):
		lowlimit = low // prime[i] * prime[i]
		if lowlimit < low:
			lowlimit += prime[i]
		if lowlimit == prime[i]:
			lowlimit += prime[i]
		for j in range(lowlimit, high + 1, prime[i]):
			l[j - low] = 1
	for i in range(low, high + 1):
		if not l[i - low]:
			if i != 1:
				print(i)

def power(a, n):
	r = 1
	while n:
		if n & 1:
			r = r * a
		a *= a
		n = n >> 1
	return r

def solve():
	n = inp()
	l = li()
	a = 'First'
	b = 'Second'
	if n == 1:
		print(a)
	else:
		z = n
		for i in range(n):
			if l[i] > 1:
				z = i
				break
		if z == n and n % 2 == 0:
			pr(b)
		elif z == n and n % 2 != 0:
			pr(a)
		elif z % 2 == 0:
			pr(a)
		else:
			pr(b)
for _ in range(inp()):
	solve()


from sys import stdin
import math
inp = lambda : stdin.readline().strip()
t = int(inp())
for _ in range(t):
	n = int(inp())
	a = [int(x) for x in inp().split()]
	ones = 0
	streak = False
	for i in range(len(a)):
		if a[i] == 1:
			ones += 1
		if a[i] != 1 and (not streak):
			begin = i + 1
			streak = True
	if ones == n:
		if n % 2 == 1:
			print('First')
			continue
		else:
			print('Second')
			continue
	if begin % 2 == 0:
		print('Second')
	else:
		print('First')


from sys import stdin, stdout
cin = stdin.readline
cout = stdout.write
mp = lambda : list(map(int, cin().split()))
(t,) = mp()
for _ in range(t):
	(n,) = mp()
	a = mp()
	if sum(a) == n:
		if n % 2:
			cout('First\n')
		else:
			cout('Second\n')
		continue
	f1 = 1
	for i in range(n - 1):
		if a[i] == 1:
			f1 = (f1 == 1) * 2 + (f1 == 2) * 1
		elif f1 == 2:
			cout('Second\n')
			break
		else:
			cout('First\n')
			break
	else:
		if f1 == 2:
			cout('Second\n')
		else:
			cout('First\n')


from sys import stdin
for _ in range(int(stdin.readline())):
	n = int(stdin.readline())
	a = list(map(int, stdin.readline().split()))
	x = 0
	for i in a:
		if i == 1:
			x += 1
		else:
			break
	if x == len(a):
		if x % 2:
			print('First')
		else:
			print('Second')
	elif x % 2:
		print('Second')
	else:
		print('First')


numberOfTc = int(input())
for ctr in range(1, numberOfTc + 1):
	n = int(input())
	lis = list(map(int, input().split()))
	k = lis.count(1)
	if k == n:
		if k % 2:
			print('First')
		else:
			print('Second')
	else:
		for i in range(n):
			if lis[i] > 1:
				if i % 2 == 0:
					print('First')
					break
				else:
					print('Second')
					break


def tc():
	n = int(input())
	a = [int(x) for x in input().split()]
	if n == 1:
		print('First')
		return
	if n % 2 == 0:
		winner = 'Second'
	else:
		winner = 'First'
	for (i, x) in enumerate(a):
		if x > 1:
			if i % 2 == 0:
				winner = 'First'
			else:
				winner = 'Second'
			break
	print(winner)
T = int(input())
for _ in range(T):
	tc()


import math, itertools, fractions, heapq, collections, bisect, sys, queue, copy
sys.setrecursionlimit(10 ** 7)
inf = 10 ** 20
mod = 10 ** 9 + 7
dd = [(-1, 0), (0, 1), (1, 0), (0, -1)]
ddn = [(-1, 0), (-1, 1), (0, 1), (1, 1), (1, 0), (1, -1), (0, -1), (-1, -1)]

def LI():
	return [int(x) for x in sys.stdin.readline().split()]

def I():
	return int(sys.stdin.readline())

def F():
	return float(sys.stdin.readline())

def LS():
	return sys.stdin.readline().split()

def S():
	return input()

def main():
	n = I()
	ans = []
	for _ in range(n):
		k = I()
		l = LI()
		f = False
		for (i, x) in enumerate(l):
			if x != 1:
				f = True
				if i % 2 == 0:
					ans.append('First')
				else:
					ans.append('Second')
				break
		if not f:
			if k % 2 == 0:
				ans.append('Second')
			else:
				ans.append('First')
	for x in ans:
		print(x)
main()


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	c = 0
	for x in a:
		if x > 1:
			if c & 1:
				print('Second')
			else:
				print('First')
			break
		else:
			c += 1
	else:
		if n & 1:
			print('First')
		else:
			print('Second')


cases = int(input())
for case in range(cases):
	stackNo = int(input())
	L = [int(x) for x in input().split()]
	decided = False
	for (i, number) in enumerate(L):
		if number > 1:
			if i % 2 == 0:
				print('First')
			else:
				print('Second')
			decided = True
			break
	if not decided:
		if i % 2 == 0:
			print('First')
		else:
			print('Second')


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


def inp():
	return int(input())

def inlt():
	return list(map(int, input().split()))

def insr():
	s = input()
	return list(s[:len(s)])

def invr():
	return map(int, input().split())
n = inp()
for i in range(n):
	m = inp()
	l = inlt()
	win = 0
	t = 0
	while l[t] == 1:
		t += 1
		if t == len(l):
			break
		win = (win + 1) % 2
	if win:
		print('Second')
	else:
		print('First')


for i in range(int(input())):
	n = int(input())
	a = input().split()
	if a.count('1') == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif a[0] != '1':
		print('First')
	else:
		c = 0
		index = 0
		while a[index] == '1':
			c += 1
			index += 1
			if index == n - 1:
				break
		if c % 2 == 0:
			print('First')
		else:
			print('Second')


for i in range(int(input())):
	input()
	x = input().split()
	x.pop()
	try:
		print(('First', 'Second')[list(map(lambda x: (1, 2)[x is not '1'], x)).index(2) % 2])
	except:
		print(('First', 'Second')[len(x) % 2])


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


for i in range(int(input())):
	n = int(input())
	arr = list(map(int, input().strip().split()))
	i = 0
	while i < n and arr[i] == 1:
		i += 1
	if i == 0:
		print('First')
	elif i == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif i % 2 != 0:
		print('Second')
	else:
		print('First')


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	f = 0
	k = 0
	for i in l:
		if i == 1:
			f ^= 1
		else:
			k = 1
			if f == 0:
				print('First')
			else:
				print('Second')
			break
	if k == 0:
		f ^= 1
		if f == 0:
			print('First')
		else:
			print('Second')


def solve(a, n):
	first = True
	for i in range(n - 1):
		if a[i] == 1:
			first = not first
		else:
			break
	if first:
		print('First')
	else:
		print('Second')
t = int(input())
while t:
	n = int(input())
	a = [(lambda x: int(x))(x) for x in input().split()]
	solve(a, n)
	t -= 1


import sys
input = lambda : sys.stdin.readline().strip()
char = [chr(i) for i in range(97, 123)]
CHAR = [chr(i) for i in range(65, 91)]
mp = lambda : list(map(int, input().split()))
INT = lambda : int(input())
rn = lambda : range(INT())
from math import ceil, sqrt, factorial, gcd
for _ in rn():
	n = INT()
	l = mp()
	count_1 = 0
	for i in range(n):
		if l[i] > 1:
			if count_1 % 2 == 1:
				second = 1
				first = 0
			else:
				second = 0
				first = 1
			count_1 = ''
			break
		else:
			count_1 += 1
	if count_1 != '':
		if count_1 % 2 == 0:
			second = 1
			first = 0
		else:
			first = 1
			second = 0
	if first == 1:
		print('First')
	else:
		print('Second')


from sys import stdin, stdout
import math
from itertools import permutations, combinations
from collections import defaultdict
from collections import Counter
from bisect import bisect_left
import sys
from queue import PriorityQueue
import operator as op
from functools import reduce
mod = 1000000007

def L():
	return list(map(int, stdin.readline().split()))

def In():
	return map(int, stdin.readline().split())

def I():
	return int(stdin.readline())

def printIn(ob):
	return stdout.write(str(ob) + '\n')

def powerLL(n, p):
	result = 1
	while p:
		if p & 1:
			result = result * n % mod
		p = int(p / 2)
		n = n * n % mod
	return result

def ncr(n, r):
	r = min(r, n - r)
	numer = reduce(op.mul, range(n, n - r, -1), 1)
	denom = reduce(op.mul, range(1, r + 1), 1)
	return numer // denom

def myCode():
	n = I()
	lst = L()
	if lst[0] != 1:
		print('First')
	elif lst.count(1) == len(lst):
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	else:
		cnt = 0
		s = ''
		for i in lst:
			if i == 1:
				cnt += 1
				if cnt % 2 == 1:
					s = 'Second'
				else:
					s = 'First'
			else:
				break
		print(s)

def main():
	for t in range(I()):
		myCode()
main()


import math

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')


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')


for i in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	i = 0
	ans = True
	while i < n:
		if arr[i] == 1:
			ans = not ans
		else:
			break
		i += 1
	if i == n:
		if ans:
			print('Second')
		else:
			print('First')
	elif not ans:
		print('Second')
	else:
		print('First')


import sys
input = sys.stdin.readline

def getInt():
	return int(input())

def getVars():
	return map(int, input().split())

def getList():
	return list(map(int, input().split()))

def getStr():
	return input().strip()
t = getInt()
for _ in range(t):
	n = getInt()
	a = getList()
	res = 0
	for i in range(n - 1):
		if a[i] == 1:
			res += 1
		else:
			break
	if res % 2 == 0:
		print('First')
	else:
		print('Second')


a = int(input())
for i in range(a):
	b = int(input())
	l = list(map(int, input().split()))
	j = 0
	u = 0
	ans = 'Second'
	while j < b:
		if ans == 'First':
			ans = 'Second'
		else:
			ans = 'First'
		if l[j] != 1:
			break
		j += 1
	print(ans)


a = input()
for x in range(int(a)):
	c = input()
	b = input().split(' ')
	list1 = [int(i) for i in b]
	tag = list1.count(1)
	if tag == len(list1):
		if len(list1) % 2 == 0:
			print('Second')
		else:
			print('First')
	elif tag == 0:
		print('First')
	else:
		ans = 0
		for i in list1:
			if i == 1:
				ans += 1
			else:
				break
		if ans % 2 == 0:
			print('First')
		else:
			print('Second')


t = int(input())
for i in range(t):
	t1 = 0
	t2 = 0
	n = int(input())
	arr = list(map(int, input().split()))
	for i in arr:
		if i == 1:
			t1 += 1
	for j in arr:
		if j != 1:
			break
		else:
			t2 += 1
	if t1 == 0:
		print('First')
	elif n == t1 and n % 2 == 0:
		print('Second')
	elif n == t1 and n % 2 == 1:
		print('First')
	elif t2 % 2 == 0:
		print('First')
	elif t2 % 2 == 1:
		print('Second')


import math
import sys
from sys import stdin
input = sys.stdin.readline

def solve(p, n):
	G = 0
	for i in range(n):
		if p[i] % 2 != 0:
			G ^= p[i] + 1
		else:
			G ^= p[i] - 1
	return G
for _ in range(int(input())):
	n = int(input())
	arr = [int(j) for j in input().split()]
	if n == 2 and arr[0] == 1:
		print('Second')
	elif n == 1:
		print('First')
	else:
		count1 = arr.count(1)
		dic = dict()
		for i in arr:
			if i not in dic:
				dic[i] = 1
			else:
				dic[i] += 1
		if count1 == n:
			if n % 2 == 1:
				print('First')
			else:
				print('Second')
		elif count1 == 0:
			print('First')
		else:
			co = 0
			for i in range(n):
				if arr[i] == 1:
					co += 1
				else:
					break
			if co % 2 != 0:
				print('Second')
			else:
				print('First')


for i in range(int(input())):
	a = int(input())
	b = list(map(int, input().strip().split()))[:a]
	j = 0
	e = 0
	while j < len(b) and b[j] == 1:
		e += 1
		j += 1
	if j == len(b):
		if e % 2 == 0:
			print('Second')
		else:
			print('First')
	elif e % 2 == 0:
		print('First')
	else:
		print('Second')


def switch(c):
	if c == 'f':
		return 's'
	else:
		return 'f'
for t in range(int(input())):
	n = int(input())
	A = list(map(int, input().split()))
	A.reverse()
	ans = 'f'
	for i in range(1, n):
		if A[i] == 1:
			ans = switch(ans)
		else:
			ans = 'f'
	if ans == 'f':
		print('First')
	else:
		print('Second')


t = int(input())
while t:
	t -= 1
	n = int(input())
	a = [int(x) for x in input().split()]
	i = 0
	flag = 0
	while i < n - 1:
		while i < n - 1 and a[i] == 0:
			i += 1
		if a[i] == 1:
			flag ^= 1
			i += 1
		else:
			c = 0
			i += 1
			while i < n - 1 and a[i] == 1:
				c += 1
				i += 1
	if a[n - 1] > 0:
		flag ^= 1
	if flag == 0:
		print('Second')
	else:
		print('First')


cases = int(input())
for case in range(cases):
	piles = int(input())
	pile_list = [int(item) for item in input().split(' ')]
	answer = piles % 2
	for pile in range(piles):
		if pile_list[pile] > 1:
			answer = (pile + 1) % 2
			break
	if answer == 1:
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	w = 'First'
	for i in range(n - 1):
		if a[i] == 1:
			if w == 'First':
				w = 'Second'
			else:
				w = 'First'
		else:
			break
	print(w)


import sys
input = sys.stdin.readline
I = lambda : list(map(int, input().split()))
(m,) = I()
while m:
	(x,) = I()
	a = I()
	flag = 1
	c = 1
	i = 0
	while i < x - 1:
		if a[i] == 1:
			a[i] = 0
			c += 1
			i += 1
		else:
			if c % 2 == 0:
				print('Second')
			else:
				print('First')
			flag = 0
			break
	if flag:
		if c % 2 == 0:
			print('Second')
		else:
			print('First')
	m -= 1


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


from sys import stdin
from bisect import bisect_left as bl
from bisect import bisect_right as br

def input():
	return stdin.readline()[:-1]

def intput():
	return int(input())

def sinput():
	return input().split()

def intsput():
	return map(int, sinput())

class RangedList:

	def __init__(self, start, stop, val=0):
		self.shift = 0 - start
		self.start = start
		self.stop = stop
		self.list = [val] * (stop - start)

	def __setitem__(self, key, value):
		self.list[key + self.shift] = value

	def __getitem__(self, key):
		return self.list[key + self.shift]

	def __repr__(self):
		return str(self.list)

	def __iter__(self):
		return iter(self.list)

def dprint(*args, **kwargs):
	if debugging:
		print(*args, **kwargs)
debugging = 1
t = intput()
for _ in range(t):
	n = intput()
	a = list(intsput())
	cnt = 0
	for x in a:
		if x == 1:
			cnt += 1
		else:
			break
	if cnt == n:
		if cnt % 2:
			print('First')
		else:
			print('Second')
	elif cnt % 2:
		print('Second')
	else:
		print('First')


t = int(input())
f = 'First'
s = 'Second'
for i in range(t):
	n = int(input())
	lst = list(map(int, input().split()))
	i = 0
	while i < n and lst[i] == 1:
		i += 1
	if i == n:
		if i % 2 == 1:
			print(f)
		else:
			print(s)
	elif i % 2 == 1:
		print(s)
	else:
		print(f)


for _ in range(int(input())):
	n = input()
	s = list(map(int, input().split()))
	if n == 1:
		print('First')
	elif 1 not in set(s) or s[0] != 1:
		print('First')
	else:
		i = 0
		while s[i] == 1 and i < len(s) - 1:
			i += 1
		if i % 2 == 0:
			print('First')
		else:
			print('Second')


import sys
input = sys.stdin.readline

def f(m, x):
	x = x[::-1]
	ans = True
	for i in range(1, m):
		if x[i] == 1:
			if ans:
				ans = False
			else:
				ans = True
		else:
			ans = True
	return ans
for t in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	if f(n, a):
		print('First')
	else:
		print('Second')


a = int(input())
for i in range(a):
	s = int(input())
	z = list(map(int, input().split()))
	count = 1
	if len(z) == z.count(1):
		if len(z) % 2 == 1:
			print('First')
		else:
			print('Second')
		continue
	if z[0] == 1:
		for i in range(1, len(z)):
			if z[i] == z[i - 1]:
				count += 1
			else:
				break
		if count % 2 == 0:
			print('First')
		else:
			print('Second')
	else:
		print('First')


for res in [*open(0)][2::2]:
	j = 0
	while '1 ' == res[j:j + 2]:
		j += 2
	print('FSiercsotn d'[j // 2 % 2::2])


import sys
from collections import defaultdict
input = sys.stdin.readline
f = 'First'
s = 'Second'
for _ in range(int(input())):
	n = int(input())
	lis = list(map(int, input().split()))
	for i in range(n - 1, -1, -1):
		if lis[i] > 1:
			break
	else:
		if n % 2 == 0:
			print(s)
		else:
			print(f)
		continue
	y = i + 1
	for i in range(n):
		if lis[i] > 1:
			break
	x = i - 1
	if x % 2 == 1:
		print(f)
	else:
		print(s)


import sys
import math
input = sys.stdin.readline
T = int(input())
for t in range(T):
	N = int(input())
	S = list(map(int, input().split(' ')))
	win = [None for i in range(N)]
	win[N - 1] = True
	for i in range(N - 2, -1, -1):
		if S[i] == 1:
			win[i] = not win[i + 1]
		else:
			win[i] = True
	print('First' if win[0] else 'Second')


for _ in range(int(input())):
	n = int(input())
	play = list(map(int, input().split()))
	stream = bool([play[-1] > 1])
	for i in range(n - 1)[::-1]:
		if play[i] == 1:
			stream = not stream
		else:
			stream = True
	print(('Second', 'First')[stream])


from sys import stdin, stdout
for _ in range(int(stdin.readline())):
	n = int(stdin.readline())
	ls = list(map(int, stdin.readline().split()))
	f = True
	loss = 0
	can_prevent = 0
	pos = 0
	for i in range(n - 2, -1, -1):
		if ls[i] == 1:
			if i != 0 and ls[i - 1] != 1:
				if loss % 2 == 1:
					loss = 0
			else:
				loss += 1
		else:
			pos += 1
	if loss % 2 == 0:
		print('First')
	else:
		print('Second')


t = int(input())
for i in range(t):
	n = int(input())
	x = [int(e) for e in input().split()]
	x.reverse()
	res = 1
	for j in range(1, n):
		if not (res and x[j] != 1):
			res = 1 - res
	print('First' if res else 'Second')


t = int(input())
output = []
nums = []
for i in range(t):
	n = int(input())
	nums.append([int(x) for x in input().split()])
for num in nums:
	current_winner = 0
	if len(num) == 1:
		output.append('First')
	elif num[0] > 1:
		output.append('First')
	else:
		i = 0
		count_one = 0
		while i < len(num):
			if num[i] == 1:
				count_one += 1
			else:
				break
			i += 1
		if count_one % 2 == 0 and len(num) == count_one:
			output.append('Second')
		elif count_one % 2 == 1 and len(num) != count_one:
			output.append('Second')
		else:
			output.append('First')
for out in output:
	print(out)


def getWinnerUtil(a, n):
	if n == 1:
		return True
	winner = True
	for i in range(n - 1):
		if a[i] == 1:
			winner ^= True
		else:
			break
	return winner
for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	winner = getWinnerUtil(a, n)
	print('First' if winner else 'Second')


from sys import stdin, stdout
import math
import heapq
t = 1

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

def lint():
	return list(map(int, input().split()))

def fint():
	return list(map(int, stdin.readline().split()))

def main():
	n = aint()
	l = lint()
	cnt = 0
	turn = None
	for i in l:
		if i == 1:
			cnt += 1
		else:
			break
	if cnt == n:
		turn = cnt % 2
	else:
		turn = cnt % 2 ^ 1
	if turn == 0:
		print('Second')
	else:
		print('First')
	return
t = int(input())
for i in range(t):
	main()


for _ in range(int(input())):
	n = int(input())
	count = 0
	arr = list(map(int, input().split()))
	arr2020 = set(arr)
	if len(arr2020) == 1 and arr2020 == {1}:
		z = arr.count(1)
		if z % 2 == 0:
			print('Second')
		else:
			print('First')
	elif 1 not in arr:
		print('First')
	elif arr[0] == 1:
		for k in arr:
			if k == 1:
				count += 1
				if count % 2 != 0:
					ans = 'Second'
				else:
					ans = 'First'
			else:
				print(ans)
				break
	else:
		print('First')


for _ in range(int(input())):
	n = int(input())
	k = list(map(int, input().split()))
	p = 0
	for i in range(n):
		if i % 2 == 0 and k[i] > 1:
			print('First')
			p = 1
			break
		elif i % 2 != 0 and k[i] > 1:
			print('Second')
			p = 1
			break
	if n % 2 == 0 and p == 0:
		print('Second')
	elif n % 2 != 0 and p == 0:
		print('First')


def inpi():
	return int(input())

def inpl():
	return list(map(int, input().split()))

def solve():
	n = inpi()
	l = inpl()
	f = 'First'
	s = 'Second'
	i = 0
	first = True
	while i < n and l[i] == 1:
		first = not first
		i += 1
	if l.count(1) == n:
		if n % 2 == 0:
			print(s)
		else:
			print(f)
		return
	if first:
		print(f)
	else:
		print(s)
t = 1
t = inpi()
for _ in range(t):
	solve()


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


import math
t = int(input())
rez = []
for i in range(t):
	n = int(input())
	a = input().split(' ')
	for j in range(n):
		a[j] = int(a[j])
	if n == 1:
		rez.append('First')
	else:
		ini = 1
		for j in range(n):
			if a[j] == 1:
				ini *= -1
			else:
				ini *= -1
				break
		if ini == -1:
			rez.append('First')
		else:
			rez.append('Second')
for i in range(len(rez)):
	print(rez[i])


t = int(input())
for loop in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	i = 0
	win = 'First'
	while i < n:
		if i == n - 1:
			break
		if arr[i] == 1:
			if win == 'First':
				win = 'Second'
			else:
				win = 'First'
			i += 1
		elif i + 1 < n - 1 and arr[i + 1] == 1:
			j = i + 1
			while j < n - 1 and arr[j] == 1:
				j += 1
			i = j
		else:
			i += 1
	print(win)


from sys import stdin, stdout
input = stdin.readline

def write(n, sep='\n'):
	stdout.write(str(n))
	stdout.write(sep)

def gil():
	return list(map(int, input().split()))
for _t in range(int(input())):
	n = int(input())
	a = gil()
	s = 0
	for i in a:
		if i == 1:
			s = 1 - s
		else:
			s = 1 - s
			break
	if s == 1:
		print('First')
	else:
		print('Second')


t = int(input())
for i in range(t):
	n = int(input())
	a = [int(j) for j in input().split()]
	if n == 1:
		print('First')
	else:
		i = 0
		c = 0
		while i < n and a[i] == 1:
			c += 1
			i += 1
		if c % 2 == 0:
			if i == n:
				print('Second')
			else:
				print('First')
		elif i == n:
			print('First')
		else:
			print('Second')


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


for y in range(int(input())):
	n = int(input())
	lst = list(map(int, input().split()))
	i = 0
	flag = 0
	if n == 1:
		print('First')
	else:
		while i < n - 1:
			if i == n - 2:
				i += 1
				if lst[n - 2] == 1:
					if flag == 0:
						flag = 1
					else:
						flag = 0
			elif lst[i] == 1:
				if flag == 0:
					flag = 1
				else:
					flag = 0
				i += 1
			else:
				while i + 1 < n - 1 and lst[i + 1] == 1:
					i += 1
				else:
					i += 1
		if flag == 0:
			print('First')
		else:
			print('Second')


for _ in range(int(input())):
	n = int(input())
	arr = input().split()
	k = 0
	while k < n and arr[k] == '1':
		k += 1
	print('Second' if bool(k % 2) ^ (k == n) else 'First')


for i in range(int(input())):
	n = int(input())
	a = [int(num) for num in input().split()]
	if sum(a) == n:
		print('First' if n % 2 != 0 else 'Second')
	else:
		for i in a:
			if i > 1:
				print('First' if a.index(i) % 2 == 0 else 'Second')
				break


def ans():
	n = int(input())
	a = [int(x) for x in input().split()]
	no = 0
	nn = 0
	for i in a:
		if i == 1:
			no += 1
		else:
			nn += 1
	if no == 0:
		print('First')
		return
	if nn == 0:
		if no % 2 == 0:
			print('Second')
			return
		else:
			print('First')
			return
	s = 0
	e = 0
	for i in range(len(a)):
		if a[i] == 1:
			s += 1
		else:
			break
	for i in range(len(a) - 1, -1, -1):
		if a[i] == 1:
			e += 1
		else:
			break
	if s % 2 == 0:
		print('First')
		return
	if s % 2 == 1:
		print('Second')
		return
t = int(input())
for i in range(t):
	ans()


t = int(input())
for k in range(t):
	n = int(input())
	(*a,) = map(int, input().split())
	if n == 1:
		print('First')
		continue
	for i in range(n):
		if a[i] > 1:
			a[i] = 2
	prev = 0
	for i in range(n - 2, 0, -1):
		if prev == 0:
			if a[i] == 2:
				continue
			else:
				prev = 1
		else:
			prev = 0
	if prev == 0:
		if a[0] == 2:
			print('First')
		else:
			print('Second')
	else:
		print('First')


import sys
import heapq, functools, collections
import math, random
from collections import Counter, defaultdict

def solve(lst):
	console('----- solving ------')
	if set(lst) == set([1]):
		console('all ones')
		if len(lst) % 2 == 0:
			return 'Second'
		return 'First'
	if lst[0] > 1:
		console('first choice')
		return 'First'
	for (i, x) in enumerate(lst):
		if x > 1:
			if i % 2 == 1:
				return 'Second'
			return 'First'
	return 'Second'

def console(*args):
	return
for case_num in range(int(input())):
	_ = int(input())
	lst = list(map(int, input().split()))
	res = solve(lst)
	print(res)


a = int(input())
for x in range(a):
	b = int(input())
	c = list(map(int, input().split()))
	h = 0
	for y in range(b - 1):
		if c[y] == 1:
			h += 1
		else:
			break
	if h % 2 != 0:
		print('Second')
	else:
		print('First')


t = int(input())
while t != 0:
	n = int(input())
	list1 = list(map(int, input().split()))
	p = 0
	i = 0
	while i < len(list1) - 1 and list1[i] == 1:
		i += 1
		if p == 0:
			p = 1
		else:
			p = 0
	if p % 2 == 0:
		print('First')
	else:
		print('Second')
	t -= 1


import math
for w in range(int(input())):
	x = int(input())
	a = list(map(int, input().split()))
	flag = 1
	for i in range(x):
		if a[i] == 1 and i != x - 1:
			flag += 1
		elif i != x - 1:
			a[i + 1] += 1
	if flag % 2 != 0:
		print('First')
	else:
		print('Second')


t = int(input())
for i in range(t):
	n = int(input())
	a = [int(x) for x in input().split()]
	turn = 1
	i = 0
	flag = False
	while i < n:
		if a[i] == 0:
			i = i + 1
		elif a[i] == 1:
			if turn == 1:
				turn = 2
			else:
				turn = 1
			a[i] = 0
		else:
			flag = True
			break
	if flag:
		if turn == 1:
			print('First')
		else:
			print('Second')
	elif turn == 1:
		print('Second')
	else:
		print('First')


def game(piles):
	cur_player = 'First'
	i = 0
	if piles[i] != 1:
		return cur_player
	else:
		while piles[i] == 1 and i < len(piles) - 1:
			if cur_player == 'First':
				cur_player = 'Second'
			else:
				cur_player = 'First'
			i += 1
	return cur_player
tests = int(input())
for t in range(tests):
	n = int(input())
	piles = list(map(int, input().split()))
	print(game(piles))


import sys

def nim(a):
	i = 0
	ret = True
	while a[i] <= 1:
		i += 1
		if i < len(a):
			ret = not ret
		else:
			break
	return ret

def test(fd):
	n = int(next(fd))
	a = [int(i) for i in next(fd).split()]
	if nim(a):
		print('First')
	else:
		print('Second')

def main(fd=sys.stdin):
	t = int(next(fd))
	for _ in range(t):
		test(fd)
main()


from sys import stdin, stdout
for _ in range(int(stdin.readline())):
	N = int(stdin.readline())
	pile = list(map(int, stdin.readline().split()))
	for i in range(len(pile)):
		if pile[i] != 1 and pile[i] != 0:
			break
	if i == len(pile) - 1:
		if pile[i] != 1 or pile[i] != 0:
			if i % 2 == 0:
				print('First')
			else:
				print('Second')
		else:
			count = 0
			for i in range(len(pile)):
				if pile[i] == 1:
					count += 1
			if count % 2 == 0:
				print('Second')
			else:
				print('First')
	elif i % 2 == 0:
		print('First')
	else:
		print('Second')


n = int(input())
ans = 1
while n:
	n -= 1
	ans = 1
	input()
	l = list(map(int, input().split()))
	for i in l[:-1]:
		if i == 1:
			ans += 1
		else:
			break
	if ans % 2 == 0:
		print('Second')
	else:
		print('First')


t = int(input())
for _ in range(t):
	n = int(input())
	a = input().split()[-2::-1]
	want = True
	for v in a:
		if int(v) == 1:
			want = not want
		elif not want:
			want = not want
	if want:
		print('First')
	else:
		print('Second')


from collections import Counter
t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	count = 0
	if n == 1:
		print('First')
	else:
		check = True
		for i in range(n):
			if a[i] != 1:
				check = False
				index = i
				break
		if check:
			if n % 2 == 0:
				print('Second')
			else:
				print('First')
		elif index % 2 == 0:
			print('First')
		else:
			print('Second')


T = int(input())
for _ in range(T):
	N = int(input())
	a = [int(x) for x in input().split(' ')]
	win = True
	for x in reversed(a[:-1]):
		if x == 1:
			win = not win
		else:
			win = True
	print('First' if win else 'Second')


def Solve():
	for t in range(int(input())):
		n = int(input())
		s = list(map(lambda x: 1 if x == '1' else 0, input().split()))
		if 0 in s:
			print('Second' if (s.index(0) + 1) % 2 == 0 else 'First')
		else:
			print('Second' if n % 2 == 0 else 'First')
Solve()


import math
t = int(input())
for _ in range(t):
	n = int(input())
	seq = list(map(int, input().split()))
	p = 1
	i = 0
	while i < n - 1:
		if seq[i] == 1:
			if p == 1:
				p = 2
			else:
				p = 1
			i += 1
		else:
			break
	if p == 1:
		print('First')
	else:
		print('Second')


t = int(input())
for _ in range(t):
	n = int(input())
	arr = list(map(int, input().rstrip().split()))
	player = 1
	ones = 0
	for i in range(n - 1):
		if arr[i] == 1:
			ones += 1
	gto = n - 1 - ones
	if gto == 0:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
		continue
	for i in range(n - 1):
		val = arr[i]
		if val == 1:
			player += 1
		else:
			break
	if player % 2 == 0:
		print('Second')
	else:
		print('First')


for _ in range(int(input())):
	n = int(input())
	a = [int(x) for x in input().split()]
	flip = True
	for i in range(n):
		if a[i] != 1 or i == n - 1:
			break
		flip = not flip
	if flip:
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	joss = 0
	(win, lose) = ('First', 'Second')
	if 1 not in a:
		print('First')
	else:
		for (k, i) in enumerate(a):
			if i == 1 and k != n - 1:
				(win, lose) = (lose, win)
			else:
				break
		print(win)


t = int(input())
for _ in range(t):
	n = int(input())
	xs = [int(x) for x in input().split(' ')]
	xs.reverse()
	win = False
	for x in xs:
		if x > 1:
			win = True
		else:
			win = not win
	if win:
		print('First')
	else:
		print('Second')


from __future__ import division, print_function
import bisect
import math
import heapq
import itertools
import sys
from collections import deque
from atexit import register
from collections import Counter
from functools import reduce
if sys.version_info[0] < 3:
	from io import BytesIO as stream
else:
	from io import StringIO as stream
if sys.version_info[0] < 3:

	class dict(dict):

		def items(self):
			return dict.iteritems(self)

		def keys(self):
			return dict.iterkeys(self)

		def values(self):
			return dict.itervalues(self)
	input = raw_input
	range = xrange
	filter = itertools.ifilter
	map = itertools.imap
	zip = itertools.izip

def sync_with_stdio(sync=True):
	global input, flush
	if sync:
		flush = sys.stdout.flush
	else:
		sys.stdin = stream(sys.stdin.read())
		input = lambda : sys.stdin.readline().rstrip('\r\n')
		sys.stdout = stream()
		register(lambda : sys.__stdout__.write(sys.stdout.getvalue()))
mod = 1000000007
for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	f = 0
	v = 0
	for i in range(n):
		if a[i] > 1:
			v = 1
			if i % 2:
				f = 1
				break
			else:
				break
	if v:
		if f:
			print('Second')
		else:
			print('First')
	elif n % 2:
		print('First')
	else:
		print('Second')


import sys
T = int(input())
for _ in range(T):
	n = int(input())
	A = list(map(int, input().split()))
	s = sum(A) - n
	v = 1
	for i in range(n - 2, -1, -1):
		if v == 0:
			v = 1
		elif v == 1:
			if A[i] == 1:
				v = 0
	if v == 1:
		print('First')
	else:
		print('Second')


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	if len(l):
		s = True
		for i in range(len(l)):
			if l[i] == 1:
				s = not s
			else:
				s = not s
				break
		if not s:
			print('First')
		else:
			print('Second')


z = input
mod = 10 ** 9 + 7
from collections import *
from queue import *
from sys import *
from collections import *
from math import *
from heapq import *
from itertools import *
from bisect import *
from collections import Counter as cc
from math import factorial as f

def lcd(xnum1, xnum2):
	return xnum1 * xnum2 // gcd(xnum1, xnum2)

def prime(x):
	p = ceil(x ** 0.5) + 1
	for i in range(2, p):
		if x % i == 0:
			return 0
	return 1
num = int(z())
for _ in range(num):
	n = int(z())
	l1 = list(map(int, z().split()))
	one = l1.count(1)
	if one == n:
		if one % 2 == 0:
			print('Second')
		else:
			print('First')
		continue
	c = 0
	for i in l1:
		if i == 1:
			c += 1
		else:
			break
	if c % 2 == 0:
		print('First')
	else:
		print('Second')


tt = int(input())
while tt > 0:
	tt = tt - 1
	n = int(input())
	lis = list(map(int, input().split()))
	ok = 0
	for i in range(0, n - 1):
		if lis[i] > 1:
			break
		if ok == 1:
			ok = 0
		else:
			ok = 1
	if ok == 1:
		print('Second')
	else:
		print('First')


for Ram in range(int(input())):
	n = int(input())
	l = list(map(int, input().split())) + ['*']
	c = 0
	ones = []
	m = 0
	i = 0
	while l[i] == 1:
		m += 1
		i += 1
	if m == 0:
		print('First')
	elif m == n:
		if n % 2 == 0:
			print('Second')
		else:
			print('First')
	elif m % 2 == 0:
		print('First')
	else:
		print('Second')


tt = int(input())
for _ in range(tt):
	n = int(input())
	l = list(map(int, input().split()))
	if n == 1:
		print('First')
		continue
	if l.count(1) == n:
		if n % 2:
			print('First')
		else:
			print('Second')
		continue
	starting = 0
	for e in l:
		if e == 1:
			starting += 1
		else:
			break
	if starting % 2:
		print('Second')
	else:
		print('First')


for _ in range(int(input())):
	n = int(input())
	A = [int(_) for _ in input().split()]
	for _ in range(n):
		if A[_] != 1:
			break
	if _ % 2 == 0:
		print('First')
	else:
		print('Second')


import sys
import math
from collections import defaultdict, Counter
t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	c = a.count(1)
	if c == n:
		if n & 1:
			print('First')
		else:
			print('Second')
	else:
		ind = 0
		for j in range(n):
			if a[j] != 1:
				ind = j
				break
		if ind & 1:
			print('Second')
		else:
			print('First')


import math
import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	(f, s) = (0, 0)
	w = -1
	to = 0
	o = 0
	for i in range(n):
		if l[i] == 1:
			o += 1
		else:
			break
	if o == len(l):
		if o % 2 == 0:
			print('Second')
		else:
			print('First')
	elif o % 2 != 0:
		print('Second')
	else:
		print('First')


t = int(input())
for i in range(t):
	ct = 0
	n = int(input())
	i = list(map(int, input().strip().split()))[:n]
	if i[0] > 1:
		print('First')
		continue
	j = 0
	while j < len(i) - 1 and i[j] == 1:
		j += 1
	if j % 2 == 0:
		print('First')
	else:
		print('Second')


def anti(G):
	if G == True:
		return False
	else:
		return True
t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	k = n + 1
	for i in range(len(a)):
		if a[-i - 1] != 1:
			k = n - i - 1
	if k % 2 == 0:
		print('First')
	else:
		print('Second')


import io, os
input = io.BytesIO(os.read(0, os.fstat(0).st_size)).readline
for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	t = 0
	flag = True
	for i in range(n):
		el = l[i]
		if el > 1:
			t = i
			flag = False
			break
		if el % 2 != 0:
			t += 1
	if flag:
		if t % 2 == 0:
			print('Second')
		else:
			print('First')
	elif t % 2 == 0:
		print('First')
	else:
		print('Second')


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