#include using namespace std; vector < int > primes; bitset < 100000010 > bs; void sieve() { bs.set(); bs[0] = bs[1] = 0; for(int i = 2; i < 1000; i++) { if(bs[i]) { for(long long j = i * i; j <= 100000; j += i) { bs[j] = 0; } } } for(int i = 2; i < 100001; i++) { if(bs[i]) { primes.push_back(i); } } } int main(){ int g; cin >> g; sieve(); for(int a0 = 0; a0 < g; a0++){ int n; cin >> n; int l = lower_bound(primes.begin(), primes.end(), min(2, n)) - primes.begin(); int r= upper_bound(primes.begin(), primes.end(), max(1, n)) - primes.begin(); // cout << l << " " << r << "\n"; if((r - l + 1) % 2 != 0) { cout << "Bob\n"; } else { cout << "Alice\n"; } } return 0; }