class Graph(): #non-directed def __init__(self,n,edge): self.n = n self.graph = [[] for _ in range(n)] for e in edge: self.graph[e[0]].append(e[1]) self.graph[e[1]].append(e[0]) def DFS(self,s): visited = [0 for _ in range(self.n)] visited[s] = 1 stack = [s] while stack: node = stack.pop() for adj in self.graph[node]: if not visited[adj]: visited[adj] = 1 stack.append(adj) return visited N = int(input()) E = [tuple(map(int, input().split())) for _ in range(N - 1)] G = Graph(N, E) D = G.DFS(0) print('Bob' if all(D) else 'Alice')