#include #define rep(i,n)for(int i=0;i<(n);i++) using namespace std; int dp[20000]; int rec(int n){ if(dp[n]!=-1)return dp[n]; int a=n; mapmp; for(int i=2;i*i<=a;i++){ while(a%i==0){ mp[i]++;a/=i; } } if(a!=1)mp[a]++; setse; for(auto p:mp){ se.insert(rec(n/p.first)); if(p.second>=2)se.insert(rec(n/p.first/p.first)); } int res=0; while(se.count(res))res++; return dp[n]=res; } int main(){ int n;scanf("%d",&n); memset(dp,-1,sizeof(dp)); int ans=0; rep(i,n){ int m;scanf("%d",&m); ans^=rec(m); } puts(ans?"Alice":"Bob"); }