import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.util.Arrays; import java.util.StringTokenizer; public class Solution implements Runnable { private void solve() throws IOException { int[] primes = new int[100001]; boolean[] isPrime = new boolean[100001]; Arrays.fill(isPrime, true); for(int i = 2; i * i <= 100000; ++i) { if(isPrime[i]) { for(int j = i + i; j <= 100000; j += i) isPrime[j] = false; } } for(int i = 1; i <= 100000; ++i) { if(isPrime[i]) primes[i]++; primes[i] += primes[i-1]; } int N = nextInt(); for(int i = 0; i < N; ++i) { if((primes[nextInt()] % 2 == 0)) { writer.println("Alice"); } else writer.println("Bob"); } } public static void main(String[] args) { new Solution().run(); } BufferedReader reader; // BufferedReader reader2; StringTokenizer tokenizer; PrintWriter writer; // BufferedWriter writer; public void run() { try { reader = new BufferedReader(new InputStreamReader(System.in)); // reader = new BufferedReader(new FileReader("trees.in")); // reader2 = new BufferedReader(new FileReader("1.in")); tokenizer = null; writer = new PrintWriter(System.out); // writer = new PrintWriter("trees.out"); // writer = new BufferedWriter(System.out); // writer = new BufferedWriter(new OutputStreamWriter(System.out)); solve(); reader.close(); // reader2.close(); writer.close(); } catch (Exception e) { e.printStackTrace(); System.exit(1); } } int nextInt() throws IOException { return Integer.parseInt(nextToken()); } long nextLong() throws IOException { return Long.parseLong(nextToken()); } double nextDouble() throws IOException { return Double.parseDouble(nextToken()); } short nextShort() throws IOException { return Short.parseShort(nextToken()); } String nextToken() throws IOException { while (tokenizer == null || !tokenizer.hasMoreTokens()) { tokenizer = new StringTokenizer(reader.readLine()); } return tokenizer.nextToken(); } }