package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
var G [1000]int
func init() {
G[0] = 0
G[1] = 1
G[2] = 1
for n := 3; n < 1000; n++ {
seen := make([]bool, 1000)
seen[G[n-2]] = true
for j := 0; j <= n-3; j++ {
seen[G[j]^G[n-3-j]] = true
}
for i := 0; ; i++ {
if !seen[i] {
G[n] = i
break
}
}
}
}
func getG(n int) int {
if n < 1000 {
return G[n]
}
return G[100+(n-100)%34]
}
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Split(bufio.ScanWords)
buf := make([]byte, 1024*1024)
scanner.Buffer(buf, 10*1024*1024)
if !scanner.Scan() {
return
}
t, _ := strconv.Atoi(scanner.Text())
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
for i := 0; i < t; i++ {
scanner.Scan()
scanner.Scan()
s := scanner.Text()
nR := 0
nB := 0
for j := 0; j < len(s); j++ {
if s[j] == 'R' {
nR++
} else {
nB++
}
}
if nR > nB {
fmt.Fprintln(out, "Alice")
continue
} else if nB > nR {
fmt.Fprintln(out, "Bob")
continue
}
xorSum := 0
for j := 0; j < len(s); {
k := j + 1
for k < len(s) && s[k] != s[k-1] {
k++
}
L := k - j
if L >= 2 {
E := L - 1
xorSum ^= getG(E)
}
j = k
}
if xorSum > 0 {
fmt.Fprintln(out, "Alice")
} else {
fmt.Fprintln(out, "Bob")
}
}
}