#include using namespace std; #define int long long #define rep(i, l, r) for (int i = (int)(l); i < (int)(r); i++) #define all(x) (x).begin(), (x).end() #define sz(x) ((int)x.size()) template bool chmax(T &a, T b) { if (a < b) { a = b; return 1; } return 0; } template bool chmin(T &a, T b) { if (a > b) { a = b; return 1; } return 0; } template using V = vector; using P = pair; /* */ int n; int a[101]; int p[10101]; int memo[10101]; int dfs(int x){ if(memo[x] >= 0) return memo[x]; set s; rep(i, 2, x+1){ if(!p[i]) continue; if(x%i == 0) s.insert(dfs(x/i)); if(x%(i*i) == 0) s.insert(dfs(x/(i*i))); } int res = 0; while(s.count(res)) res++; return memo[x] = res; } signed main() { fill(p, p+10101, 1); fill(memo, memo+10101, -1); p[0] = p[1] = 0; rep(i, 2, 10101) rep(j, 2, 10101/i+1){ p[i*j] = 0; } cin >> n; rep(i, 0, n) cin >> a[i]; int g = 0; rep(i, 0, n) g ^= dfs(a[i]); cout << (g ? "Alice" : "Bob") << endl; return 0; }