#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LOG(...) printf(__VA_ARGS__) //#define LOG(...) #define FOR(i,a,b) for(int i=(int)(a);i<(int)(b);++i) #define REP(i,n) for(int i=0;i<(int)(n);++i) #define ALL(a) (a).begin(),(a).end() #define RALL(a) (a).rbegin(),(a).rend() #define EXIST(s,e) ((s).find(e)!=(s).end()) #define SORT(c) sort((c).begin(),(c).end()) #define RSORT(c) sort((c).rbegin(),(c).rend()) #define CLR(a) memset((a), 0 ,sizeof(a)) typedef long long ll; typedef unsigned long long ull; typedef vector vb; typedef vector vi; typedef vector vll; typedef vector vvb; typedef vector vvi; typedef vector vvll; typedef pair pii; typedef pair pll; const int MAX_N = 100000000; int main() { int n; cin >> n; int m = sqrt(n); map factor; vi sieve(m+1); sieve[0] = sieve[1] = true; FOR(i, 2, m+1) { if (sieve[i]) continue; while (n % i == 0) { factor[i]++; n /= i; } for (int j = i + i; j < m+1; j += i) { sieve[j] = true; } } if (n != 1) factor[n]++; int res = 0; for (map::iterator it = factor.begin(); it != factor.end(); it++) { res ^= it->second; } cout << (res != 0 ? "Alice" : "Bob") << endl; }