#include using namespace std; #define endl '\n' #define LL long long #define ULL unsigned long long #define all(x) x.begin(), x.end() #define fill(a, b) memset(a, b, sizeof a) const LL Mod = 1000000007; const int N = 1e5 + 5; bool isPrime[N + 5]; vector p; void sieve() { isPrime[1] = true; for (int i = 4; i <= N; i += 2) { isPrime[i] = true; } for (int i = 3; i * i <= N; i += 2) { if (!isPrime[i]) { for (int j = i << 1; j <= N; j += i) { isPrime[j] = true; } } } p.push_back(2); for (int i = 3; i <= N; i += 2) { if (!isPrime[i]) p.push_back(i); } } int main() { sieve(); int tc; cin >> tc; while (tc--) { int n; cin >> n; int l = upper_bound(all(p), n) - p.begin(); if (l & 1) cout << "Alice" << endl; else cout << "Bob" << endl; } }