#include #define REP(i,n,N) for(int i=n;i enumpr(ll n) {// map V; for (ll i = 2; i*i <= n; i++) while (n%i == 0) V[i]++, n /= i; if (n>1) V[n]++; return V; } set s; int grundy(int n){ auto m=enumpr(n); if(s.find(n)!=s.end()) return *s.find(n); for(auto pa:m){ ll p=pa.first; s.insert(n/p); if(pa.second!=1){ s.insert(n/p/p); } } int ret=0; while(s.find(ret)==s.end()){ ret++; } return ret; } int main(){ int N; int M[101]; cin>>N; REP(i,0,N){ cin>>M[i]; } int g=0; REP(i,0,N){ g^=grundy(M[i]); } if(g!=0) cout<<"Alice"<