#include using namespace std; class Number { private: long long num; public: Number(long long x = 0) { num = x; } // 素数判定 // O(√N)で判定 bool is_prime() { if (num == 1) { return false; } for (long long i = 2; i * i <= num; i++) { if (num % i == 0) { return false; } } return true; } // 約数列挙 // O(√N)で列挙 vector divisor() { vector res; for (long long i = 1; i * i <= num; i++) { if (num % i == 0) { res.push_back(i); if (i * i != num) { res.push_back(num / i); } } } sort(res.begin(), res.end()); return res; } // 素因数分解 // O(√N)で列挙 vector> prime_factor() { vector> res; for (long long i = 2; i * i <= num; i++) { if (num % i != 0) { continue; } long long tmp = 0; while (num % i == 0) { tmp++; num /= i; } res.push_back({i, tmp}); } if (num != 1) { res.push_back({num, 1}); } return res; } }; int N; int M[110]; int grundy[110]; int main() { cin >> N; for (int i = 0; i < N; i++) { cin >> M[i]; } for (int i = 0; i < N; i++) { auto vec = Number(M[i]).prime_factor(); for (auto x : vec) { grundy[i] ^= x.second % 3; } } int g = 0; for (int i = 0; i < N; i++) { g ^= grundy[i]; } if (g == 0) { cout << "Bob" << endl; } else { cout << "Alice" << endl; } return 0; }