import math def sieve_of_eratosthenes(n): prime = [True]*(n+1) prime[0] = False prime[1] = False sqrt_n = math.ceil(math.sqrt(n)) for i in range(2, sqrt_n+1): if prime[i]: for j in range(2*i, n+1, i): prime[j] = False return prime N = int(input()) M = list(map(int,input().split())) grundy = [0]*(10**4+1) p = sieve_of_eratosthenes(10**4) prime = [] for i in range(len(p)): if p[i]: prime.append(i) for i in range(2,10**4+1): s = set() for pp in prime: if i%pp==0: s.add(grundy[i//pp]) if i%(pp*pp)==0: s.add(grundy[i//pp//pp]) g = 0 while g in s: g += 1 grundy[i] = g res = 0 for m in M: res ^= grundy[m] if res: print('Alice') else: print('Bob')