#include <bits/stdc++.h>
using namespace std;
struct sta {
  int alice, bob, f;
  sta(int _alice = 0, int _bob = 0, int _f = 0) {
    alice = _alice;
    bob = _bob;
    f = _f;
  }
};
const int maxt = 1e5 + 10, maxs = 59100, maxno = 510, maxn = 245100;
int T, f, scnt;
int pw9[5], x[5], cnt[maxno], no[maxs], invNo[maxno];
bool has[maxno][5];
int dp[maxno][maxno][2], indeg[maxno][maxno][2];
queue<sta> Q;
void pre() {
  int i, j, ts, ns, t;
  int sup[5];
  sta u, v;
  pw9[0] = 1;
  for (j = (1); j <= (4); j++) {
    pw9[j] = pw9[j - 1] * 9;
  }
  sup[4] = 8;
  for (x[4] = (0); x[4] <= (sup[4]); x[4]++) {
    sup[3] = sup[4] - x[4];
    for (x[3] = (0); x[3] <= (sup[3]); x[3]++) {
      sup[2] = sup[3] - x[3];
      for (x[2] = (0); x[2] <= (sup[2]); x[2]++) {
        sup[1] = sup[2] - x[2];
        for (x[1] = (0); x[1] <= (sup[1]); x[1]++) {
          x[0] = 8;
          for (i = (1); i <= (4); i++) {
            x[0] -= x[i];
          }
          if (x[0] < 0) {
            continue;
          }
          ts = 0;
          for (i = (0); i <= (4); i++) {
            ts += x[i] * pw9[i];
            has[scnt][i] = x[i] > 0;
            cnt[scnt] += x[i] > 0;
          }
          cnt[scnt] -= x[0] > 0;
          no[ts] = scnt;
          invNo[scnt++] = ts;
        }
      }
    }
  }
  for (i = (0); i <= (scnt - 1); i++) {
    dp[0][i][1] = -1;
    dp[i][0][0] = -1;
    Q.push((sta){0, i, 1});
    Q.push((sta){i, 0, 0});
  }
  for (; !Q.empty();) {
    u = Q.front();
    Q.pop();
    for (i = (0); i <= (4); i++) {
      if (!has[u.alice][i]) {
        continue;
      }
      for (j = (0); j <= (4); j++) {
        if (!has[u.bob][j]) {
          continue;
        }
        if (!u.f) {
          ns = invNo[u.bob] - pw9[j] + pw9[t = (j - i + 5) % 5];
          if (!i || !t || !has[no[ns]][t]) {
            continue;
          }
          v = (sta){u.alice, no[ns], 1};
        } else {
          ns = invNo[u.alice] - pw9[i] + pw9[t = (i - j + 5) % 5];
          if (!t || !j || !has[no[ns]][t]) {
            continue;
          }
          v = (sta){no[ns], u.bob, 0};
        }
        if (dp[v.alice][v.bob][v.f] < 0) {
          continue;
        }
        indeg[v.alice][v.bob][v.f]++;
        if (dp[u.alice][u.bob][u.f] == -1) {
          dp[v.alice][v.bob][v.f] = -2;
          Q.push(v);
        } else {
          if (dp[u.alice][u.bob][u.f] == -2) {
            dp[v.alice][v.bob][v.f]++;
          }
          if (indeg[v.alice][v.bob][v.f] == cnt[v.alice] * cnt[v.bob]) {
            if (dp[v.alice][v.bob][v.f] == cnt[v.alice] * cnt[v.bob]) {
              dp[v.alice][v.bob][v.f] = -1;
            } else {
              dp[v.alice][v.bob][v.f] = -3;
            }
            Q.push(v);
          }
        }
      }
    }
  }
}
int main() {
  int i, j, k, y;
  int st[2];
  pre();
  scanf("%d", &T);
  for (i = (1); i <= (T); i++) {
    scanf("%d", &f);
    for (j = (0); j <= (1); j++) {
      memset(x, 0, sizeof(x));
      for (k = (1); k <= (8); k++) {
        scanf("%d", &y);
        x[y]++;
      }
      st[j] = 0;
      for (k = (0); k <= (4); k++) {
        st[j] += x[k] * pw9[k];
      }
      st[j] = no[st[j]];
    }
    if (dp[st[0]][st[1]][f] == -1) {
      printf("%s", (!f) ? "Bob" : "Alice");
      if (i < T) {
        printf("\n");
      }
    } else if (dp[st[0]][st[1]][f] == -2) {
      printf("%s", (!f) ? "Alice" : "Bob");
      if (i < T) {
        printf("\n");
      }
    } else {
      printf("Deal");
      if (i < T) {
        printf("\n");
      }
    }
  }
  return 0;
}
