#nullable enable #region var (_input, _iter) = (Array.Empty(), 0); T I() where T : IParsable { while (_iter >= _input.Length) (_input, _iter) = (Console.ReadLine()!.Split(' ', StringSplitOptions.RemoveEmptyEntries), 0); return T.Parse(_input[_iter++], null); } #endregion bool Solve() { var n = I(); var o = false; var oz = new List(); for (var i = 0; i < n; i++) { var a = I(); if (a % 2 == 0) continue; o = !o; oz.Add(a); } if (o) return true; oz.Reverse(); for (var i = 1; i < oz.Count; i += 2) if (oz[i] == 1) return true; return false; } var ans = new List(); var t = I(); while (t-- > 0) ans.Add(Solve() ? "Alice" : "Bob"); Console.WriteLine(string.Join(Environment.NewLine, ans));