#include #include using namespace std; int main() { long long N, K; if (!(cin >> N >> K)) return 0; if (N == 1) { cout << "Bob" << endl; return 0; } // 1. Tính M = Tổng số thừa số nguyên tố của N long long M = 0; long long tempN = N; for (long long i = 2; i * i <= tempN; ++i) { while (tempN % i == 0) { M++; tempN /= i; } } if (tempN > 1) M++; // 2. Tính f(K) = Số lượng thừa số nguyên tố tối đa có tích <= K // Vì số nguyên tố nhỏ nhất là 2, f(K) chính là số x lớn nhất sao cho 2^x <= K long long fK = 0; long long tempK = K; if (tempK < 2) { // Nếu K < 2, không thể chọn d nào > 1, Bob thắng ngay lập tức cout << "Bob" << endl; return 0; } while (tempK >= 2) { tempK /= 2; fK++; } // 3. Kết quả trò chơi Nim (1 đống, bốc tối đa fK viên) if (M % (fK + 1) != 0) { cout << "Alice" << endl; } else { cout << "Bob" << endl; } return 0; }