#include<stdio.h>
#include<stdlib.h>
typedef struct Node{
int card;
struct Node* next;
}Node;
typedef struct{
Node* front;
Node* rear;
int size;
}Queue;
void initQueue(Queue* q){
q->front=NULL;
q->rear=NULL;
q->size=0;
}
int isEmpty(Queue* q){
return q->front==NULL;
}
void enqueue(Queue* q,int card){
Node* newNode=(Node*)malloc(sizeof(Node));
newNode->card=card;
newNode->next=NULL;
if(q->rear==NULL){
q->front=newNode;
q->rear=newNode;
}else{
q->rear->next=newNode;
q->rear=newNode;
}
q->size++;
}
int dequeue(Queue* q){
if(isEmpty(q)){
return -1;
}
Node* temp=q->front;
int card = temp->card;
q->front=q->front->next;
if(q->front==NULL){
q->rear=NULL;
}
free(temp);
q->size--;
return card;
}
void freeQueue(Queue* q){
while(!isEmpty(q)){
dequeue(q);
}
}
void clearInputBuffer(){
int c;
while((c = getchar()) != '\n' && c != EOF);
}
int main(){
int N;
scanf("%d",&N);
for(int num=0;num<N;num++){
int n,m;
Queue alice,bob;
initQueue(&alice);
initQueue(&bob);
scanf("%d %d",&n,&m);
clearInputBuffer();
for(int i=0;i<n;i++){
int card;
if(scanf("%d",&card)!=1){
freeQueue(&alice);
return 1;
}
enqueue(&alice,card);
}
clearInputBuffer();
for(int i=0;i<m;i++){
int card;
if(scanf("%d",&card)!=1){
freeQueue(&alice);
freeQueue(&bob);
return 1;
}
enqueue(&bob,card);
}
clearInputBuffer();
int win_a=0,win_b=0;
while(!isEmpty(&alice)&&!isEmpty(&bob)){
int a_card=dequeue(&alice);
int b_card=dequeue(&bob);
if (a_card>b_card){
win_a++;
enqueue(&alice,a_card);
}else if(a_card<b_card){
win_b++;
enqueue(&bob,b_card);
}
}
if(win_a==win_b){
printf("draw\n");
}else if(win_a>win_b){
printf("alice\n");
}else{
printf("bob\n");
}
freeQueue(&alice);
freeQueue(&bob);
}
}