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