class UnionFind: n = 1 parent_or_size = [-1 for i in range(n)] def __init__(self, N): self.n = N self.parent_or_size = [-1 for _ in range(N)] def merge(self, a, b): assert 0 <= a < self.n, "0<=a 0: result2.append(result[i]) return result2 def main(): n = int(input()) uf = UnionFind(n) adj = [[] for _ in range(n)] for _ in range(n - 1): a, b = map(int, input().split()) uf.merge(a, b) adj[a].append(b) adj[b].append(a) k = len(uf.groups()) if k == 1: exit(print("Bob")) if k > 2: exit(print("Alice")) if k == 2: if 1 in map(len, adj): print("Alice") else: print("Bob") if __name__ == "__main__": main()