#include #include #include #include #include #include #include #include #define _USE_MATH_DEFINES #include #include #include #define REP(i,n) for(int (i)=0;(i)<(n);(i)++) #define RREP(i,n) for(int (i)=(n)-1;(i)>=0;(i)--) #define debug(x) cout< P; typedef priority_queue maxpq; typedef priority_queue,greater > minpq; typedef priority_queue

p_maxpq; typedef priority_queue,greater

> p_minpq; typedef vector veci; typedef vector

vecp; typedef vector vecs; #define INF 2000000000 struct edge{int to,cost;}; bool e[100000000] = {false}; int main(void) { int n;cin >> n; for(int i = 2;i <= n;i++) { if(e[i]) continue; for(int j = i+i;j <= n;j+=i) { e[j] = true; } } int ans = 0; for(int i = 2;i <= n;i++) { if(!e[i]) { int count = 0,N = n; while(N%i==0) { N /= i; count++; } ans = ans^count; } } if(ans) cout << "Alice" << endl; else cout << "Bob" << endl; return 0; }