#include #define all(x) x.begin(),x.end() #define long long long #define INF 1000000001 #define LNF 10000000011000000001 using namespace std; vector graph[200001]; vector graph2[200001]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n,m; cin >> n >> m; vector res(n+1,2); vector degree(n+1); vector cnt(n+1); for(int i = 1; i<=m; i++) { int a,b; cin >> a >> b; graph[b].push_back(a); graph2[a].push_back(b); degree[a]++; } queue q; for(int i = 1; i<=n; i++) { if(degree[i] == 0) { res[i] = 0; q.push(i); } } while(!q.empty()) { int x = q.front(); q.pop(); for(int y : graph[x]) { degree[y]--; if(res[y] != 2) continue; if(res[x] == 0) { res[y] = 1; q.push(y); } else if(degree[y] == 0) { bool isTrue = true; for(int z : graph2[y]) { if(res[z] != 1) isTrue = false; } if(isTrue) { res[y] = 0; q.push(y); } } } } if(res[1] == 0) cout << "Bob" << endl; if(res[1] == 1) cout << "Alice" << endl; if(res[1] == 2) cout << "Draw" << endl; return 0; }