from collections import deque N,M = list(map(int,input().split())) edge = [[] for _ in range(N)] edge_rev = [[] for _ in range(N)] for _ in range(M): u,v = list(map(int,input().split())) u -= 1;v -= 1 edge[u].append(v) edge_rev[v].append(u) q_in = [set(i) for i in edge] q = deque([i for i in range(N) if len(edge[i]) == 0]) is_win = [None for _ in range(N)] visited = set() while(q): now = q.popleft() if(now in visited):continue visited.add(now) if(any(not is_win[i] for i in edge[now])): is_win[now] = True for i in edge_rev[now]: q_in[i].discard(now) if(len(q_in[i]) == 0): q.append(i) continue if(all(is_win[i] for i in edge[now])): is_win[now] = False for i in edge_rev[now]: q.append(i) continue print("Alice" if is_win[0] else "Bob" if is_win[0] == False else "Draw")