import sys # input = lambda :sys.stdin.readline()[:-1] ni = lambda :int(input()) na = lambda :list(map(int,input().split())) yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES") no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO") ####################################################################### """ ある色について, 色 i で長さ j にをとるときの最大値 """ from functools import cache def naive(h, w, r, c): @cache def saiki(now, x, y): # print(bin(now), x, y) for dx, dy in [[1, 0], [-1, 0], [0, 1],[0, -1]]: nx = x + dx ny = y + dy if 0 <= nx < h and 0 <= ny < w and not (now >> (nx * w + ny) & 1): z = now nx = x ny = y while 0 <= nx + dx < h and 0 <= ny + dy < w: z |= 1 << (nx * w + ny) nx += dx ny += dy if not saiki(z, nx, ny): return 1 return 0 return saiki(0, r, c) def solve(h, w, r, c): if min(h, w) >= 4: return (r == 0 or r == h - 1) != (c == 0 or c == w - 1) elif min(h, w) >= 3: return (0 < r < h - 1) or (0 < c < w - 1) elif h == w == 1: return 0 else: return 1 # for h in range(1, 12): # for w in range(h, 12): # f = [[0] * w for i in range(h)] # for r in range(h): # for c in range(w): # if solve(h, w, r, c) != naive(h, w, r, c): # print(h, w, r, c) # f[r][c] = naive(h, w, r, c) # # print(h, w) # # for i in range(h): # # print(*f[i]) # # print() for _ in range(ni()): h, w, r, c = na() r -= 1 c -= 1 if solve(h, w, r, c): print("Alice") else: print("Bob")