#include using namespace std; #define REP(i, n) for (int i = 0; i < n; i++) #define FOR(i, m, n) for (int i = m; i < n; i++) #define ALL(obj) obj.begin(), obj.end() #define Size(obj) (int)obj.size() #define fcout cout << fixed using i64 = long long; const int iINF = INT_MAX; i64 gcd(i64 a, i64 b) { if (a < b) { return gcd(b, a); } else if (b == 0) { return a; } else { return gcd(b, a % b); } } vector> prime_factorize(i64 n) { vector> res; for (i64 p = 2; p * p <= n; p++) { if (n % p != 0) continue; int cnt = 0; while (n % p == 0) { cnt += 1; n /= p; } res.push_back(make_pair(p, cnt)); } if (n != 1) { res.push_back(make_pair(n, 1)); } return res; } int main() { int n; cin >> n; auto fac = prime_factorize(n); int ans = 0; for (auto itr = fac.begin(); itr != fac.end(); itr++) { ans ^= (*itr).second; } cout << (ans != 0 ? "Alice" : "Bob") << endl; return 0; }