class Graph(): #non-directed def __init__(self,n,edge): self.n = n self.graph = [[] for _ in range(n)] self.deg = [0 for _ in range(n)] for e in edge: self.graph[e[0]].append(e[1]) self.graph[e[1]].append(e[0]) self.deg[e[0]] += 1 self.deg[e[1]] += 1 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) if G.deg[0] > 0 else G.DFS(1) print('Bob' if all(D) or all([D[i] and G.deg[i] == 2 for i in range(N) if G.deg[i] != 0]) else 'Alice')