N = gets.to_i G = Array.new(N){ [] } (N - 1).times do u,v = gets.split.map(&:to_i) G[u] << v G[v] << u end USED = Array.new(N) def bfs(s) q = [s] USED[s] = true until q.empty? u = q.shift G[u].each do |v| if !USED[v] q << v USED[v] = true end end end s end c = N.times.count do |s| bfs(s) if !USED[s] end if c == 1 puts "Bob" elsif c >= 3 puts "Alice" else puts N.times.all?{|i| G[i].size == 2 || G[i].size == 0 } ? "Bob" : "Alice" end