#include #include using namespace std; typedef long long ll; typedef vector vec; typedef vector mat; typedef pair P; typedef priority_queue,greater

> P_queue; #define REP(i,a,b) for(int i=a;i a(N+1,true); a.at(0)=false; a.at(1)=false; REP(i,2,N+1){ if(a.at(i)) for(ll k=2*i;k<=N;k+=i) a.at(k)=false; } rep(i,N+1) if(a.at(i)) ret.pb(i); return ret; } vector

Soin(ll N){ ll BIG=N, SMALL=0; while(BIG>SMALL+1){ ll MID=(BIG+SMALL)/2; if(MID*MID>N) BIG=MID; else SMALL=MID; } vec Sosu=Eratosthenes(BIG); vector

ret; for(int i=0;Sosu.at(i)*Sosu.at(i)<=N;i++){ ll k=Sosu.at(i); ll count=0; while(true){ if(N%k!=0) break; count++; N/=k; } if(count!=0) ret.pb(mp(k,count)); } if(N!=1) ret.pb(mp(N,1)); return ret; } ll Nim(ll x){ vector

y=Soin(x); ll ret=0; rep(i,y.size()) { ll kari=y.at(i).second; ret=(ret^kari); } return ret; } int main(){ ll N; cin>>N; if(Nim(N)) cout<<"Alice"<