A. Игра с ящиками
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

Это интерактивная задача. Ваша программа должна читать данные из стандартного входного потока и выводить данные в стандартный выходной поток. После вывода каждой строки используйте flush-операции, например, fflush(stdout) в С++, System.out.flush() в Java, и flush(output) в Pascal.

Алиса и Боб играют в следующую игру.

На столе в ряд расположены n ящиков, пронумерованных слева направо последовательными целыми числами от 1 до n. Для каждого ящика игрокам известна его вместимость ci — наибольшее количество шариков, которое может быть помещено в этот ящик. Таким образом, i-й ящик может в процессе игры содержать произвольное количество шаров от 0 до ci включительно. Изначально i-й ящик содержит si шаров.

Все шары неразличимы между собой; таким образом, позиция в игре однозначно задаётся последовательностью чисел vi, обозначающих количество шаров в i-м ящике.

Игроки делают ходы по очереди, первый ход делает Алиса. Ход состоит в том, что участник добавляет один шар в некоторый ящик, в котором находится менее, чем ci шаров (где i — номер соответствующего ящика), или забирает один шар из некоторого ящика, если тот непуст. Количество шаров у каждого игрока неограниченно.

При этом ходы, приводящие к повторению уже встретившейся в данной партии позиции, запрещены. Тем самым игра становится конечной. Проигравшим считается тот игрок, который не сможет сделать не запрещённого хода в свою очередь.

Ваша задача — написать программу, которая всегда выигрывает у программы жюри. При этом в каждом тестовом примере Вы выбираете, за кого будете играть — за Алису или за Боба.

Входные данные

Входной файл содержит несколько тестовых примеров. В первой строке каждого тестового примера задано целое число n (1 ≤ n ≤ 15) — количество ящиков. Вторая строка содержит последовательность целых чисел c1, c2, ..., cn (1 ≤ ci ≤ 10 000) — вместимость ящиков. Гарантируется, что число возможных состояний в игре не превосходит 50 000. Иначе говоря, . Третья строка тестового примера содержит целые числа s1, s2, ..., sn (0 ≤ si ≤ ci), которые задают стартовое количество шаров в ящиках.

Ход задаётся строкой, содержащей целое число p (1 ≤ p ≤ n) и символ '+ 'или '-', отделённый от числа пробелом. Символ '+' обозначает, что игрок добавляет шар в p-й ящик, а символ '-' — что он забирает шар из p-го ящика.

При обмене информацией с интерактором на вход подаются ходы оппонента, по одному в строке. В случае, если ваше решение играет за Алису, выведите свой первый ход, прочитайте первый ход оппонента и так далее. Если ваше решение играет за Боба, первый ход делает оппонент. В этом случае вы сначала считываете первый ход оппонента, затем выводите свой первый ход, считываете второй ход оппонента, выводите свой второй ход и так далее.

Когда оппонент проигрывает, он выводит вместо описания хода '0 ?', после чего тестовый пример завершается.

Ввод завершается тестовым примером с n = 0, обрабатывать который не следует.

Выходные данные

В начале взаимодействия с интерактором выведите "Alice", если ваша программа в данном тестовом примере выбирает первый ход, и "Bob", если второй.

Далее выводите описания ходов по одному в строке (последовательность взаимодействия с интерактором описана в формате входного файла). После вывода каждой строки не забывайте делать flush.

Примеры
Входные данные
2
1 1
1 1
2 -
0 ?
1
4
2
1 +
0 ?
0
Выходные данные
Alice
1 -
1 +
Bob
1 +