#include //#include //using namespace atcoder; using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; #define pii pair #define pll pair #define rep(i,num,n) for(int i=num;i<(int)(n);i++) //for_loop #define REP(i,n) for(int i=0;i<(int)(n);i++) #define rrep(i,num,n) for(int i=num-1;i>=(int)(n);i--) //reverse_for> #define in(x,a,b) (a<=x && xb){a=b;return true;}return false;} bool chmax(ll &a,ll b){if(ab){a=b;return true;}return false;} bool chmax(int &a,int b){if(a>n; vector>fact(n); vectora(n); rep(i,0,n)cin>>a[i]; rep(j,0,n){ for(ll i=2;i*i<=a[j];i++){ if(a[j]%i==0)while(a[j]%i==0){ fact[j][i]++; a[j]/=i; } } if(a[j]!=1)fact[j][a[j]]++; } ll x=0; rep(i,0,n){ ll grundy=0; for(auto[key,val]:fact[i]){ //valを1 or 2減らす不偏ゲーム。 //grundyは0,1,2,0,1,2...と推移. int v=val%3; grundy^=v; } x^=grundy; } if(x)cout<<"Alice"; else cout<<"Bob"; reo; }