N, M = map(int, input().split()) Graph = [[] for _ in range(N)] RevG = [[] for _ in range(N)] Outs = [0] * N for i in range(M): u, v = map(int, input().split()) Graph[u - 1].append(v - 1) RevG[v - 1].append(u - 1) Outs[u - 1] += 1 L = [] Result = [-1] * N #Result[i]:=頂点iに駒がある状態でゲームをした時、0なら先手が勝つ1なら後手が勝つ-1なら引き分け for i in range(N): if(Outs[i] == 0): L.append(i) Result[i] = 1 while len(L): p = L.pop() if(Result[p] == 1): for pre in RevG[p]: if(Result[pre] == -1): Result[pre] = 0 L.append(pre) elif(Result[p] == 0): for pre in RevG[p]: Outs[pre] -= 1 if(Outs[pre] == 0): L.append(pre) Result[pre] = 1 else: assert(False) if(Result[0] == 0): print("Alice") elif(Result[0] == 1): print("Bob") else: print("Draw")