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')