import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { static boolean sieve[] = new boolean[100001]; static int primeCountTill[] = new int[100001]; public static void main(String[] args) { Scanner in = new Scanner(System.in); int g = in.nextInt(); preprocessing(); for(int a0 = 0; a0 < g; a0++){ int n = in.nextInt(); //get the count of prime numbers below n //if the count is even then 'Bob' will win (means the player playing second wins) //if the count is odd then 'Alice' will win (means the player playing first wins) int primeNumCount = primeCountTill[n]; if(primeNumCount%2==0) { System.out.println("Bob"); } else { System.out.println("Alice"); } } } public static void preprocessing() { int sqrtOfN = (int)Math.sqrt(100001); for(int i=2; i<=sqrtOfN; i++){ if(!sieve[i]) { //still unmarked for(int j=i*i; j<100001;) { sieve[j] = true; //mark it j += i; } } } primeCountTill[0] = 0; primeCountTill[1] = 0; for(int i=2; i<100001; i++){ if(!sieve[i]){ //still unmarked, its a prime number primeCountTill[i] = primeCountTill[i-1] + 1; } else { primeCountTill[i] = primeCountTill[i-1]; } //if(i<30) System.out.println(i + " -- " + primeCountTill[i]+ " "); } //System.out.println("upto 50=> "+ primeCountTill[50]); //System.out.println("upto 100=> "+ primeCountTill[100]); } }