Alice and Bob are playing a game. There are $n$ cells in a row. Initially each cell is either red or blue. Alice goes first.

On each turn, Alice chooses two neighbouring cells which contain at least one red cell, and paints that two cells white. Then, Bob chooses two neighbouring cells which contain at least one blue cell, and paints that two cells white. The player who cannot make a move loses.

Find the winner if both Alice and Bob play optimally.

Note that a chosen cell can be white, as long as the other cell satisfies the constraints.


-----Input-----

The first line contains a single integer $t$ ($1 \leq t \leq 10^4$) — the number of test cases. Description of test cases follows.

For each test case, the first line contains an integer $n$ ($2 \leq n \leq 5 \cdot 10^5$) — the number of cells.

The second line contains a string $s$ of length $n$ — the initial state of the cells. The $i$-th cell is red if $s_i = $ R, blue if $s_i = $ B.

It is guaranteed that the sum of $n$ over all test cases does not exceed $5 \cdot 10^5$.


-----Output-----

For each test case, output the name of the winner on a separate line.


-----Examples-----

Input
8
3
BRB
5
RRBBB
6
RBRBRB
8
BBRRBRRB
6
BRRBRB
12
RBRBRBRBRRBB
12
RBRBRBRBBBRR
4
RBBR
Output
Bob
Bob
Alice
Alice
Alice
Alice
Bob
Bob


-----Note-----

In the notes, the cell numbers increase from left to right.

In the first testcase for Alice, she has two choices: paint the first and the second cells, or paint the second and the third cells. No matter what choice Alice makes, there will be exactly one blue cell after Alice's move. Bob just needs to paint the blue cell and its neighbour, then every cell will be white and Alice can't make a move. So Bob is the winner.

In the second testcase no matter what Alice chooses, Bob can choose to paint the fourth and fifth cells in $2$ turns.

In the third testcase at first, Alice paints the third and the fourth cells. It doesn't matter if Bob paints the first and the second cells or the fifth and sixth cells, as Alice can paint the other two cells.

In the fourth testcase at first, Alice paints the second and the third cells. If Bob paints the fifth and the sixth cells or the fourth and the fifth cells, then Alice paints the seventh and the eighth cells. If Bob paints the seventh and the eighth cells, then Alice paints the fifth and the sixth cells.

In the fifth Alice chooses the middle two cells at first, then Bob obviously has only two options, whichever variant he chooses, Alice can choose the other one and win.

In the eighth no matter what Alice chooses, Bob can choose the other two symmetrical cells.

Difficulty: VERY_HARD
Tags: Dynamic programming

Game theory

Constructive algorithms
Skill types: Dynamic programming

Starter code:

Solutions:
sg = [0] * 1156
sg[0] = sg[1] = 0
vis = [False] * 1156
for i in range(2, 1156):
	for j in range(0, i - 1):
		vis[sg[j] ^ sg[i - j - 2]] = True
	for j in range(0, 1156):
		if not vis[j]:
			sg[i] = j
			break
	for j in range(0, i - 2):
		vis[sg[j] ^ sg[i - j - 2]] = False
for tc in range(int(input())):
	N = int(input())
	S = input()
	(R, B) = (S.count('R'), S.count('B'))
	if R > B:
		print('Alice')
		continue
	if R < B:
		print('Bob')
		continue
	(l, r, ans) = (0, 0, 0)
	while l < N:
		r = l + 1
		while r < N and S[r - 1] != S[r]:
			r += 1
		ans ^= sg[r - l] if r - l < 1156 else sg[1122 + (r - l) % 34]
		l = r
	print('Alice' if ans != 0 else 'Bob')