#include "bits/stdc++.h" using namespace std; #define rep(i, n) for (int i = 0; i < (n); i ++) int grundy(vector& v) { bool f = true; for (int i = 0; i < v.size(); i ++) if (v[i] != 0) f = false; if (f) return 0; set s; for (int i = 0; i < v.size(); i ++) { if (v[i] == 0) continue; v[i] --; s.insert(grundy(v)); v[i] ++; if (v[i] < 2) continue; v[i] -= 2; s.insert(grundy(v)); v[i] += 2; } int g = 0; while (s.count(g) != 0) { g ++; } return g; } int main() { int n; cin >> n; vector m(n); rep(i, n) cin >> m[i]; vector> ans(n); for (int k = 0; k < n; k ++) { int mm = m[k]; for (int i = 2; i * i <= mm; i ++) { if (m[k] % i) continue; int cnt = 1; m[k] /= i; while (m[k] % i == 0) { cnt ++; m[k] /= i; } ans[k].push_back(cnt); } if (m[k] > 1) ans[k].push_back(1); } int x = grundy(ans[0]); for (int i = 1; i < n; i ++) { x ^= grundy(ans[i]); } cout << (x ? "Alice" : "Bob") << endl; return 0; }