#include typedef long long ll; typedef unsigned long long ull; #define FOR(i,a,b) for(int (i)=(a);i<(b);i++) #define REP(i,n) FOR(i,0,n) #define RANGE(vec) (vec).begin(),(vec).end() using namespace std; template std::map primeFactor(T n) { std::map res; for (T i = 2; i*i <= n; ++i) { while (n%i==0) { ++res[i]; n /= i; } } if (n!= 1) res[n] = 1; return res; } class PrimeGame { public: void solve(void) { int N; cin>>N; auto primes = primeFactor(N); map memo; // 各素因数を山の種類、素因数の冪数を山の高さとすると // Nim に帰着できる。 function grundy = [&](int n) { if (memo.count(n)) return memo[n]; if (n <= 1) return (memo[n] = 0); set S; for (auto pk : primes) { int p,k; tie(p,k) = pk; int tmp(n); while (tmp % p == 0) { tmp /= p; S.insert(grundy(tmp)); } } int res = 0; while (S.count(res)) ++res; return (memo[n] = res); }; if (grundy(N)) cout<<"Alice"<solve(); delete obj; return 0; } #endif