#include #define rep(i, a, b) for (int i = a; i <= b; i++) #define per(i, a, b) for (int i = a; i >= b; i--) using namespace std; typedef unsigned long long ull; typedef pair pii; typedef long long ll; template inline void read(T &f) { f = 0; T fu = 1; char c = getchar(); while (c < '0' || c > '9') { if (c == '-') { fu = -1; } c = getchar(); } while (c >= '0' && c <= '9') { f = (f << 3) + (f << 1) + (c & 15); c = getchar(); } f *= fu; } template void print(T x) { if (x < 0) putchar('-'), x = -x; if (x < 10) putchar(x + 48); else print(x / 10), putchar(x % 10 + 48); } template void print(T x, char t) { print(x); putchar(t); } const int N = 10; vector adj[100000]; queue q; int f[100000], cnt[100000]; int T; void addedge(int u, int v) { adj[u].push_back(v); } int s(int a, int b, int c, int d) { return a * 1000 + b * 100 + c * 10 + d; } int main() { memset(f, -1, sizeof(f)); rep(a, 0, 9) rep(b, 0, 9) rep(c, 0, 9) rep(d, 0, 9) { addedge(s(c, d, (a + c) % 10, b), s(a, b, c, d)); addedge(s(c, d, (a + d) % 10, b), s(a, b, c, d)); addedge(s(c, d, (b + c) % 10, a), s(a, b, c, d)); addedge(s(c, d, (b + d) % 10, a), s(a, b, c, d)); addedge(s(c, d, (a + b) % 10, b), s(a, b, c, d)); addedge(s(c, d, a, (a + b) % 10), s(a, b, c, d)); if (c == 0 || d == 0) q.push(s(a, b, c, d)), f[s(a, b, c, d)] = 0; } while (!q.empty()) { int u = q.front(); q.pop(); for (int i = 0; i < (int)adj[u].size(); i++) { int v = adj[u][i]; if (f[u] == 0 && f[v] == -1) { f[v] = 1; q.push(v); } if (f[u] == 1 && f[v] == -1) { ++cnt[v]; if (cnt[v] == 6) { f[v] = 0; q.push(v); } } } } read(T); while (T--) { int a, b, c, d; read(a); read(b); read(c); read(d); int ans = f[s(a, b, c, d)]; if (ans == -1) puts("Tie"); else if (ans == 0) puts("Bob"); else puts("Alice"); } return 0; }