from functools import lru_cache import sys sys.setrecursionlimit(10**7) def solve(): @lru_cache(maxsize=None) def memo_rec(m): if m == 1: return False res = False for p in p_divs: i = 1 while m % (p**i) == 0: res |= not memo_rec(m // (p**i)) i += 1 # print(m, res) return res N = int(input()) p_divs = [] m = N for p in range(2, N): if p*p > N: break if m % p == 0: p_divs.append(p) while m % p == 0: m //= p if m > 1: p_divs.append(m) judge = memo_rec(N) print('Alice' if judge else 'Bob') if __name__ == '__main__': solve()