#include using namespace std; map, bool> memo; bool brute(const vector& A) { if (memo.count(A)) return memo[A]; int N = A.size(); for (int i = 0; i < N; ++i) { if (A[i] == 0) continue; vector B = A; B[i]--; if (B[i] == 0) { for (int j = i; j < N; ++j) { B[j] = 0; } } if (!brute(B)) { return memo[A] = true; } } return memo[A] = false; } bool solve(const vector& A) { long long S = 0; bool win = false; for (long long a : A) { if (a == 1 && S % 2 == 0) { win = true; } S += a; } if (S % 2 == 1) { win = true; } return win; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int T; cin >> T; while (T--) { int N; cin >> N; vector A(N); long long sum = 0; for (auto& a : A) { cin >> a; sum += a; } bool win; if (sum <= 15) { vector B(N); for (int i = 0; i < N; ++i) { B[i] = (int)A[i]; } memo.clear(); win = brute(B); } else { win = solve(A); } cout << (win ? "Alice" : "Bob") << '\n'; } return 0; }