package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var t int
if _, err := fmt.Fscan(reader, &t); err != nil {
return
}
for test := 0; test < t; test++ {
var n int
fmt.Fscan(reader, &n)
var sx, sy int
fmt.Fscan(reader, &sx, &sy)
c0 := (sx + sy) % 2
S0 := make([]int, 0)
S1 := make([]int, 0)
for i := 1; i <= n; i++ {
var x, y int
fmt.Fscan(reader, &x, &y)
if (x+y)%2 == c0 {
S0 = append(S0, i)
} else {
S1 = append(S1, i)
}
}
var playFirst bool
if len(S1) <= n/2 {
playFirst = true
fmt.Fprintln(writer, "First")
} else {
playFirst = false
fmt.Fprintln(writer, "Second")
}
writer.Flush()
used := make([]bool, n+1)
p0, p1 := 0, 0
for turn := 1; turn <= n; turn++ {
myTurn := (turn%2 == 1) == playFirst
if myTurn {
var pick int
if playFirst {
for p1 < len(S1) && used[S1[p1]] {
p1++
}
if p1 < len(S1) {
pick = S1[p1]
p1++
} else {
for p0 < len(S0) && used[S0[p0]] {
p0++
}
pick = S0[p0]
p0++
}
} else {
for p0 < len(S0) && used[S0[p0]] {
p0++
}
if p0 < len(S0) {
pick = S0[p0]
p0++
} else {
for p1 < len(S1) && used[S1[p1]] {
p1++
}
pick = S1[p1]
p1++
}
}
used[pick] = true
fmt.Fprintln(writer, pick)
writer.Flush()
} else {
var opp int
fmt.Fscan(reader, &opp)
used[opp] = true
}
}
}
}